A Lean Companion to Conceptual Mathematics

Session 17: Some uses of graphs

1. Paths

In the exercises that follow for this Session, we implement the free category 𝑭(G) on each graph G using mathlib's CategoryTheory.Paths V, where V is a quiver (i.e., a directed graph). In particular, we make extensive use of the inductive datatype Quiver.Path, the type of paths through the arrows of the quiver, which we print below for reference.

inductive Quiver.Path.{v, u} : {V : Type u} β†’ [Quiver V] β†’ V β†’ V β†’ Sort (max (u + 1) v) number of parameters: 3 constructors: Quiver.Path.nil : {V : Type u} β†’ [inst : Quiver V] β†’ {a : V} β†’ Quiver.Path a a Quiver.Path.cons : {V : Type u} β†’ [inst : Quiver V] β†’ {a b c : V} β†’ Quiver.Path a b β†’ (b ⟢ c) β†’ Quiver.Path a c#print Quiver.Path
inductive Quiver.Path.{v, u} : {V : Type u} β†’ [Quiver V] β†’ V β†’ V β†’ Sort (max (u + 1) v)
number of parameters: 3
constructors:
Quiver.Path.nil : {V : Type u} β†’ [inst : Quiver V] β†’ {a : V} β†’ Quiver.Path a a
Quiver.Path.cons : {V : Type u} β†’ [inst : Quiver V] β†’ {a b c : V} β†’ Quiver.Path a b β†’ (b ⟢ c) β†’ Quiver.Path a c
Exercise 1 (p. 200)

Danilo noticed that from a graph G we can build a category 𝑭(G), the free category on the graph G. An object is a dot of G, and a map is a path in G. For which of the following graphs does Danilo's category have a terminal object?

Solution: Exercise 1

An object S is terminal in a category if for each object X in the category there is exactly one map from X to S. Only the free category 𝑭(G_b) on the graph (b) and the free category 𝑭(G_c) on the graph (c) have objects that meet this criterion.

(a) 𝑭(G_a) has infinitely many maps from the object to itself (each map corresponding to the path formed by going around the arrow/loop a different number of times).

inductive Dot | x₁ inductive Arrow : Dot β†’ Dot β†’ Type | f₁ : Arrow .x₁ .x₁ instance : Quiver Dot where Hom := Arrow open Limits in example : Β¬(HasTerminal (Paths Dot)) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)⊒ False h:HasTerminal (Paths Dot)h_uniq:Unique (Quiver.Path CM.Ex17_1_a.Dot.x₁ CM.Ex17_1_a.Dot.x₁) := Limits.uniqueToTerminal CM.Ex17_1_a.Dot.xβ‚βŠ’ False h:HasTerminal (Paths Dot)h_uniq:Unique (Quiver.Path CM.Ex17_1_a.Dot.x₁ CM.Ex17_1_a.Dot.x₁) := Limits.uniqueToTerminal CM.Ex17_1_a.Dot.x₁h_sub:Subsingleton (Quiver.Path CM.Ex17_1_a.Dot.x₁ CM.Ex17_1_a.Dot.x₁) := inferInstance⊒ False have h_nontriv : Nontrivial (Quiver.Path Dot.x₁ Dot.x₁) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_uniq:Unique (Quiver.Path CM.Ex17_1_a.Dot.x₁ CM.Ex17_1_a.Dot.x₁) := Limits.uniqueToTerminal CM.Ex17_1_a.Dot.x₁h_sub:Subsingleton (Quiver.Path CM.Ex17_1_a.Dot.x₁ CM.Ex17_1_a.Dot.x₁) := inferInstance⊒ βˆƒ x y, x β‰  y h:HasTerminal (Paths Dot)h_uniq:Unique (Quiver.Path CM.Ex17_1_a.Dot.x₁ CM.Ex17_1_a.Dot.x₁) := Limits.uniqueToTerminal CM.Ex17_1_a.Dot.x₁h_sub:Subsingleton (Quiver.Path CM.Ex17_1_a.Dot.x₁ CM.Ex17_1_a.Dot.x₁) := inferInstance⊒ Quiver.Path.nil β‰  Quiver.Hom.toPath Arrow.f₁ h:HasTerminal (Paths Dot)h_uniq:Unique (Quiver.Path CM.Ex17_1_a.Dot.x₁ CM.Ex17_1_a.Dot.x₁) := Limits.uniqueToTerminal CM.Ex17_1_a.Dot.x₁h_sub:Subsingleton (Quiver.Path CM.Ex17_1_a.Dot.x₁ CM.Ex17_1_a.Dot.x₁) := inferInstancea✝:Quiver.Path.nil = Quiver.Hom.toPath Arrow.fβ‚βŠ’ False All goals completed! πŸ™ All goals completed! πŸ™

(b) The only object in 𝑭(G_b) is terminal, since there is exactly one map from that object to itself, namely the identity map.

inductive Dot | x₁ inductive Arrow : Dot β†’ Dot β†’ Type instance : Quiver Dot where Hom := Arrow open Limits in example : HasTerminal (Paths Dot) := ⊒ HasTerminal (Paths Dot) have h_all_sub : βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₁) := ⊒ HasTerminal (Paths Dot) x:Paths Dot⊒ Subsingleton (x ⟢ Dot.x₁) x:Paths Dot⊒ βˆ€ (a b : x ⟢ Dot.x₁), a = b intro f x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.xβ‚βŠ’ f = g x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths CM.Ex17_1_b.Dot} β†’ (x ⟢ CM.Ex17_1_b.Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nil⊒ f = g have h_all_eq_id : βˆ€ {x : Paths Dot} (p : x ⟢ Dot.x₁), P p := ⊒ HasTerminal (Paths Dot) x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths CM.Ex17_1_b.Dot} β†’ (x ⟢ CM.Ex17_1_b.Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝:x✝ ⟢ Dot.xβ‚βŠ’ P p✝ x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths CM.Ex17_1_b.Dot} β†’ (x ⟢ CM.Ex17_1_b.Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝:x✝ ⟢ Dot.xβ‚βŠ’ P (πŸ™ Dot.x₁)x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths CM.Ex17_1_b.Dot} β†’ (x ⟢ CM.Ex17_1_b.Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝:x✝ ⟢ Dot.xβ‚βŠ’ βˆ€ {u v : Dot} (p : (Paths.of Dot).obj v ⟢ Dot.x₁) (q : u ⟢ v), P p β†’ P (p ⊚ (Paths.of Dot).map q) x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths CM.Ex17_1_b.Dot} β†’ (x ⟢ CM.Ex17_1_b.Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝:x✝ ⟢ Dot.xβ‚βŠ’ P (πŸ™ Dot.x₁) All goals completed! πŸ™ x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths CM.Ex17_1_b.Dot} β†’ (x ⟢ CM.Ex17_1_b.Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝:x✝ ⟢ Dot.xβ‚βŠ’ βˆ€ {u v : Dot} (p : (Paths.of Dot).obj v ⟢ Dot.x₁) (q : u ⟢ v), P p β†’ P (p ⊚ (Paths.of Dot).map q) intro _ x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths CM.Ex17_1_b.Dot} β†’ (x ⟢ CM.Ex17_1_b.Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝:x✝ ⟢ Dot.x₁u✝:Dotv✝:Dot⊒ βˆ€ (p : (Paths.of Dot).obj v✝ ⟢ Dot.x₁) (q : u✝ ⟢ v✝), P p β†’ P (p ⊚ (Paths.of Dot).map q) x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths CM.Ex17_1_b.Dot} β†’ (x ⟢ CM.Ex17_1_b.Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝¹:x✝ ⟢ Dot.x₁u✝:Dotv✝:Dotp✝:(Paths.of Dot).obj v✝ ⟢ Dot.xβ‚βŠ’ βˆ€ (q : u✝ ⟢ v✝), P p✝ β†’ P (p✝ ⊚ (Paths.of Dot).map q) x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths CM.Ex17_1_b.Dot} β†’ (x ⟢ CM.Ex17_1_b.Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝¹:x✝ ⟢ Dot.x₁u✝:Dotv✝:Dotp✝:(Paths.of Dot).obj v✝ ⟢ Dot.x₁e:u✝ ⟢ v✝⊒ P p✝ β†’ P (p✝ ⊚ (Paths.of Dot).map e) x:Paths Dotf:x ⟢ Dot.x₁g:x ⟢ Dot.x₁P:{x : Paths CM.Ex17_1_b.Dot} β†’ (x ⟢ CM.Ex17_1_b.Dot.x₁) β†’ Prop := fun {x} p ↦ p = Quiver.Path.nilx✝:Paths Dotp✝¹:x✝ ⟢ Dot.x₁u✝:Dotv✝:Dotp✝:(Paths.of Dot).obj v✝ ⟢ Dot.x₁e:u✝ ⟢ v✝a✝:P p✝⊒ P (p✝ ⊚ (Paths.of Dot).map e) All goals completed! πŸ™ All goals completed! πŸ™ have h_all_nonempty : βˆ€ (x : Paths Dot), Nonempty (x ⟢ Dot.x₁) := ⊒ HasTerminal (Paths Dot) h_all_sub:βˆ€ (x : Paths CM.Ex17_1_b.Dot), Subsingleton (x ⟢ CM.Ex17_1_b.Dot.x₁) := ?_mvar.340x:Paths Dot⊒ Nonempty (x ⟢ Dot.x₁) All goals completed! πŸ™ All goals completed! πŸ™

(c) In 𝑭(G_c), the second dot from the right corresponds to a terminal object, since there is exactly one map (path) to that object from every object in 𝑭(G_c). We label the dots from left to right, with x_1 being the upper left dot and x_2 the lower left dot (so x_4 is terminal).

inductive Dot | x₁ | xβ‚‚ | x₃ | xβ‚„ | xβ‚… inductive Arrow : Dot β†’ Dot β†’ Type | f₁ : Arrow .x₁ .x₃ | fβ‚‚ : Arrow .xβ‚‚ .x₃ | f₃ : Arrow .x₃ .xβ‚„ | fβ‚… : Arrow .xβ‚… .xβ‚„ instance : Quiver Dot where Hom := Arrow open Limits in example : HasTerminal (Paths Dot) := ⊒ HasTerminal (Paths Dot) have h_all_sub : βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚„) := ⊒ HasTerminal (Paths Dot) x:Paths Dot⊒ Subsingleton (x ⟢ Dot.xβ‚„) x:Paths Dot⊒ βˆ€ (a b : x ⟢ Dot.xβ‚„), a = b intro f x:Paths Dotf:x ⟢ Dot.xβ‚„g:x ⟢ Dot.xβ‚„βŠ’ f = g f:Dot.x₁ ⟢ Dot.xβ‚„g:Dot.x₁ ⟢ Dot.xβ‚„βŠ’ f = gf:Dot.xβ‚‚ ⟢ Dot.xβ‚„g:Dot.xβ‚‚ ⟢ Dot.xβ‚„βŠ’ f = gf:Dot.x₃ ⟢ Dot.xβ‚„g:Dot.x₃ ⟢ Dot.xβ‚„βŠ’ f = gf:Dot.xβ‚„ ⟢ Dot.xβ‚„g:Dot.xβ‚„ ⟢ Dot.xβ‚„βŠ’ f = gf:Dot.xβ‚… ⟢ Dot.xβ‚„g:Dot.xβ‚… ⟢ Dot.xβ‚„βŠ’ f = g all_goals repeat first | (All goals completed! πŸ™) -- deconstruct f | (All goals completed! πŸ™) -- deconstruct g | ⊒ Quiver.Path.nil.cons Arrow.fβ‚… = Quiver.Path.nil.cons Arrow.fβ‚… | All goals completed! πŸ™ have h_all_nonempty : βˆ€ (x : Paths Dot), Nonempty (x ⟢ Dot.xβ‚„) := ⊒ HasTerminal (Paths Dot) h_all_sub:βˆ€ (x : Paths CM.Ex17_1_c.Dot), Subsingleton (x ⟢ CM.Ex17_1_c.Dot.xβ‚„) := ?_mvar.2090x:Paths Dot⊒ Nonempty (x ⟢ Dot.xβ‚„) h_all_sub:βˆ€ (x : Paths CM.Ex17_1_c.Dot), Subsingleton (x ⟢ CM.Ex17_1_c.Dot.xβ‚„) := ?_mvar.2090⊒ Nonempty (Dot.x₁ ⟢ Dot.xβ‚„)h_all_sub:βˆ€ (x : Paths CM.Ex17_1_c.Dot), Subsingleton (x ⟢ CM.Ex17_1_c.Dot.xβ‚„) := ?_mvar.2090⊒ Nonempty (Dot.xβ‚‚ ⟢ Dot.xβ‚„)h_all_sub:βˆ€ (x : Paths CM.Ex17_1_c.Dot), Subsingleton (x ⟢ CM.Ex17_1_c.Dot.xβ‚„) := ?_mvar.2090⊒ Nonempty (Dot.x₃ ⟢ Dot.xβ‚„)h_all_sub:βˆ€ (x : Paths CM.Ex17_1_c.Dot), Subsingleton (x ⟢ CM.Ex17_1_c.Dot.xβ‚„) := ?_mvar.2090⊒ Nonempty (Dot.xβ‚„ ⟢ Dot.xβ‚„)h_all_sub:βˆ€ (x : Paths CM.Ex17_1_c.Dot), Subsingleton (x ⟢ CM.Ex17_1_c.Dot.xβ‚„) := ?_mvar.2090⊒ Nonempty (Dot.xβ‚… ⟢ Dot.xβ‚„) h_all_sub:βˆ€ (x : Paths CM.Ex17_1_c.Dot), Subsingleton (x ⟢ CM.Ex17_1_c.Dot.xβ‚„) := ?_mvar.2090⊒ Nonempty (Dot.x₁ ⟢ Dot.xβ‚„) All goals completed! πŸ™ h_all_sub:βˆ€ (x : Paths CM.Ex17_1_c.Dot), Subsingleton (x ⟢ CM.Ex17_1_c.Dot.xβ‚„) := ?_mvar.2090⊒ Nonempty (Dot.xβ‚‚ ⟢ Dot.xβ‚„) All goals completed! πŸ™ h_all_sub:βˆ€ (x : Paths CM.Ex17_1_c.Dot), Subsingleton (x ⟢ CM.Ex17_1_c.Dot.xβ‚„) := ?_mvar.2090⊒ Nonempty (Dot.x₃ ⟢ Dot.xβ‚„) All goals completed! πŸ™ h_all_sub:βˆ€ (x : Paths CM.Ex17_1_c.Dot), Subsingleton (x ⟢ CM.Ex17_1_c.Dot.xβ‚„) := ?_mvar.2090⊒ Nonempty (Dot.xβ‚„ ⟢ Dot.xβ‚„) All goals completed! πŸ™ h_all_sub:βˆ€ (x : Paths CM.Ex17_1_c.Dot), Subsingleton (x ⟢ CM.Ex17_1_c.Dot.xβ‚„) := ?_mvar.2090⊒ Nonempty (Dot.xβ‚… ⟢ Dot.xβ‚„) All goals completed! πŸ™ All goals completed! πŸ™

(d) 𝑭(G_d) is similar to 𝑭(G_a) in that each object of 𝑭(G_d) has infinitely many maps from itself to itself and from the other object to itself (each map corresponding to the path formed by going a different number of times around the closed loop of arrows between the two objects).

inductive Dot | x₁ | xβ‚‚ inductive Arrow : Dot β†’ Dot β†’ Type | f₁ : Arrow .x₁ .xβ‚‚ | fβ‚‚ : Arrow .xβ‚‚ .x₁ instance : Quiver Dot where Hom := Arrow open Limits in example : Β¬(HasTerminal (Paths Dot)) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)⊒ False have h_all_uniq : βˆ€ (x : Paths Dot), Unique (x ⟢ ⊀_ Paths Dot) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)x:Paths Dot⊒ Unique (x ⟢ ⊀_ Paths Dot) All goals completed! πŸ™ have h_all_sub : βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_d.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1402x:Paths Dot⊒ Subsingleton (x ⟢ ⊀_ Paths Dot) All goals completed! πŸ™ have h_nontriv₁ : Nontrivial (Quiver.Path Dot.x₁ Dot.x₁) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_d.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_d.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1582⊒ βˆƒ x y, x β‰  y h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_d.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_d.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1582⊒ Quiver.Path.nil β‰  (Quiver.Hom.toPath Arrow.f₁).cons Arrow.fβ‚‚ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_d.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_d.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1582a✝:Quiver.Path.nil = (Quiver.Hom.toPath Arrow.f₁).cons Arrow.fβ‚‚βŠ’ False All goals completed! πŸ™ have h_nontrivβ‚‚ : Nontrivial (Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_d.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_d.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1582h_nontriv₁:Nontrivial (Quiver.Path CM.Ex17_1_d.Dot.x₁ CM.Ex17_1_d.Dot.x₁) := ?_mvar.26784⊒ βˆƒ x y, x β‰  y h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_d.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_d.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1582h_nontriv₁:Nontrivial (Quiver.Path CM.Ex17_1_d.Dot.x₁ CM.Ex17_1_d.Dot.x₁) := ?_mvar.26784⊒ Quiver.Path.nil β‰  (Quiver.Hom.toPath Arrow.fβ‚‚).cons Arrow.f₁ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_d.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_d.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1582h_nontriv₁:Nontrivial (Quiver.Path CM.Ex17_1_d.Dot.x₁ CM.Ex17_1_d.Dot.x₁) := ?_mvar.26784a✝:Quiver.Path.nil = (Quiver.Hom.toPath Arrow.fβ‚‚).cons Arrow.fβ‚βŠ’ False All goals completed! πŸ™ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_d.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_d.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1582h_nontriv₁:Nontrivial (Quiver.Path CM.Ex17_1_d.Dot.x₁ CM.Ex17_1_d.Dot.x₁) := ?_mvar.26784h_nontrivβ‚‚:Nontrivial (Quiver.Path CM.Ex17_1_d.Dot.xβ‚‚ CM.Ex17_1_d.Dot.xβ‚‚) := ?_mvar.27447hx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ Falseh:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_d.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_d.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1582h_nontriv₁:Nontrivial (Quiver.Path CM.Ex17_1_d.Dot.x₁ CM.Ex17_1_d.Dot.x₁) := ?_mvar.26784h_nontrivβ‚‚:Nontrivial (Quiver.Path CM.Ex17_1_d.Dot.xβ‚‚ CM.Ex17_1_d.Dot.xβ‚‚) := ?_mvar.27447hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_d.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_d.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1582h_nontriv₁:Nontrivial (Quiver.Path CM.Ex17_1_d.Dot.x₁ CM.Ex17_1_d.Dot.x₁) := ?_mvar.26784h_nontrivβ‚‚:Nontrivial (Quiver.Path CM.Ex17_1_d.Dot.xβ‚‚ CM.Ex17_1_d.Dot.xβ‚‚) := ?_mvar.27447hx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ Falseh:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_d.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_d.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1582h_nontriv₁:Nontrivial (Quiver.Path CM.Ex17_1_d.Dot.x₁ CM.Ex17_1_d.Dot.x₁) := ?_mvar.26784h_nontrivβ‚‚:Nontrivial (Quiver.Path CM.Ex17_1_d.Dot.xβ‚‚ CM.Ex17_1_d.Dot.xβ‚‚) := ?_mvar.27447hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_d.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚‚)h_nontriv₁:Nontrivial (Quiver.Path Dot.x₁ Dot.x₁)h_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚)hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_d.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₁)h_nontriv₁:Nontrivial (Quiver.Path Dot.x₁ Dot.x₁)h_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚)hx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ False All goals completed! πŸ™ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_d.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_d.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚‚)h_nontriv₁:Nontrivial (Quiver.Path Dot.x₁ Dot.x₁)h_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚)hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ False All goals completed! πŸ™

(e) In 𝑭(G_e), the left-hand object has no map from the right-hand object, while the right-hand object has two maps from the left-hand object. We label the dots from left to right.

inductive Dot | x₁ | xβ‚‚ inductive Arrow : Dot β†’ Dot β†’ Type | f₁ : Arrow .x₁ .xβ‚‚ | fβ‚‚ : Arrow .x₁ .xβ‚‚ instance : Quiver Dot where Hom := Arrow open Limits in example : Β¬(HasTerminal (Paths Dot)) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)⊒ False have h_all_uniq : βˆ€ (x : Paths Dot), Unique (x ⟢ ⊀_ Paths Dot) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)x:Paths Dot⊒ Unique (x ⟢ ⊀_ Paths Dot) All goals completed! πŸ™ have h_all_sub : βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_e.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1402x:Paths Dot⊒ Subsingleton (x ⟢ ⊀_ Paths Dot) All goals completed! πŸ™ have h_empty₁ : Β¬(Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁)) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_e.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_e.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1582h_empty:Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁)⊒ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_e.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_e.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1582p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚βŠ’ False All goals completed! πŸ™ have h_nontrivβ‚‚ : Nontrivial (Quiver.Path Dot.x₁ Dot.xβ‚‚) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_e.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_e.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1582h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_e.Dot.xβ‚‚ CM.Ex17_1_e.Dot.x₁) := ?_mvar.26784⊒ βˆƒ x y, x β‰  y h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_e.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_e.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1582h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_e.Dot.xβ‚‚ CM.Ex17_1_e.Dot.x₁) := ?_mvar.26784⊒ Quiver.Hom.toPath Arrow.f₁ β‰  Quiver.Hom.toPath Arrow.fβ‚‚ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_e.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_e.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1582h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_e.Dot.xβ‚‚ CM.Ex17_1_e.Dot.x₁) := ?_mvar.26784H:Quiver.Hom.toPath Arrow.f₁ = Quiver.Hom.toPath Arrow.fβ‚‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_e.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_e.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1582h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_e.Dot.xβ‚‚ CM.Ex17_1_e.Dot.x₁) := ?_mvar.26784b_eq✝:Dot.x₁ = Dot.x₁h_arrow:Dot.xβ‚‚ = Dot.xβ‚‚a_eq✝¹:Quiver.Path.nil = Quiver.Path.nila_eq✝:Arrow.f₁ = Arrow.fβ‚‚βŠ’ False All goals completed! πŸ™ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_e.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_e.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1582h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_e.Dot.xβ‚‚ CM.Ex17_1_e.Dot.x₁) := ?_mvar.26784h_nontrivβ‚‚:Nontrivial (Quiver.Path CM.Ex17_1_e.Dot.x₁ CM.Ex17_1_e.Dot.xβ‚‚) := ?_mvar.27329hx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ Falseh:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_e.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_e.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1582h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_e.Dot.xβ‚‚ CM.Ex17_1_e.Dot.x₁) := ?_mvar.26784h_nontrivβ‚‚:Nontrivial (Quiver.Path CM.Ex17_1_e.Dot.x₁ CM.Ex17_1_e.Dot.xβ‚‚) := ?_mvar.27329hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_e.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_e.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1582h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_e.Dot.xβ‚‚ CM.Ex17_1_e.Dot.x₁) := ?_mvar.26784h_nontrivβ‚‚:Nontrivial (Quiver.Path CM.Ex17_1_e.Dot.x₁ CM.Ex17_1_e.Dot.xβ‚‚) := ?_mvar.27329hx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.x₁)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₁)h_empty₁:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁)h_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.x₁ Dot.xβ‚‚)hx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.x₁)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₁)h_empty₁:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁)h_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.x₁ Dot.xβ‚‚)hx:(⊀_ Paths Dot) = Dot.x₁h_uniq₁:Unique (Quiver.Path CM.Ex17_1_e.Dot.xβ‚‚ CM.Ex17_1_e.Dot.x₁) := @_fvar.28335 CM.Ex17_1_e.Dot.xβ‚‚βŠ’ False have h_nonempty₁ : Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁) := ⊒ Β¬HasTerminal (Paths Dot) All goals completed! πŸ™ All goals completed! πŸ™ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_e.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths CM.Ex17_1_e.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1582h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_e.Dot.xβ‚‚ CM.Ex17_1_e.Dot.x₁) := ?_mvar.26784h_nontrivβ‚‚:Nontrivial (Quiver.Path CM.Ex17_1_e.Dot.x₁ CM.Ex17_1_e.Dot.xβ‚‚) := ?_mvar.27329hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_e.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_e.Dot) := ?_mvar.1402h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚‚)h_empty₁:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₁)h_nontrivβ‚‚:Nontrivial (Quiver.Path Dot.x₁ Dot.xβ‚‚)hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ False All goals completed! πŸ™

(f) In 𝑭(G_f), neither the leftmost object nor the centre object has a map from the rightmost object, while the rightmost object has no map from either the leftmost object nor the centre object. We label the dots from left to right again.

inductive Dot | x₁ | xβ‚‚ | x₃ inductive Arrow : Dot β†’ Dot β†’ Type | f₁ : Arrow .xβ‚‚ .x₁ instance : Quiver Dot where Hom := Arrow open Limits in example : Β¬(HasTerminal (Paths Dot)) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)⊒ False have h_all_uniq : βˆ€ (x : Paths Dot), Unique (x ⟢ ⊀_ Paths Dot) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)x:Paths Dot⊒ Unique (x ⟢ ⊀_ Paths Dot) All goals completed! πŸ™ have h_all_sub : βˆ€ (x : Paths Dot), Subsingleton (x ⟢ ⊀_ Paths Dot) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_f.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1055x:Paths Dot⊒ Subsingleton (x ⟢ ⊀_ Paths Dot) All goals completed! πŸ™ have h_empty₁ : Β¬(Nonempty (Quiver.Path Dot.x₃ Dot.x₁)) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_f.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1055h_all_sub:βˆ€ (x : Paths CM.Ex17_1_f.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1235h_empty:Nonempty (Quiver.Path Dot.x₃ Dot.x₁)⊒ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_f.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1055h_all_sub:βˆ€ (x : Paths CM.Ex17_1_f.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1235p:Quiver.Path Dot.x₃ Dot.xβ‚βŠ’ False match p with h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_f.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1055h_all_sub:βˆ€ (x : Paths CM.Ex17_1_f.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1235p:Quiver.Path Dot.x₃ Dot.x₁b✝:Dotp':Quiver.Path Dot.x₃ b✝q:b✝ ⟢ Dot.xβ‚βŠ’ False match p' with h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_f.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1055h_all_sub:βˆ€ (x : Paths CM.Ex17_1_f.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1235p:Quiver.Path Dot.x₃ Dot.x₁b✝:Dotp':Quiver.Path Dot.x₃ b✝q:Dot.x₃ ⟢ Dot.xβ‚βŠ’ False All goals completed! πŸ™ have h_emptyβ‚‚ : Β¬(Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_f.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1055h_all_sub:βˆ€ (x : Paths CM.Ex17_1_f.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1235h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.x₁) := ?_mvar.26437h_empty:Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)⊒ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_f.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1055h_all_sub:βˆ€ (x : Paths CM.Ex17_1_f.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1235h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.x₁) := ?_mvar.26437p:Quiver.Path Dot.x₃ Dot.xβ‚‚βŠ’ False All goals completed! πŸ™ have h_empty₃ : Β¬(Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)) := ⊒ Β¬HasTerminal (Paths Dot) h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_f.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1055h_all_sub:βˆ€ (x : Paths CM.Ex17_1_f.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1235h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.x₁) := ?_mvar.26437h_emptyβ‚‚:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.xβ‚‚) := ?_mvar.29062h_empty:Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)⊒ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_f.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1055h_all_sub:βˆ€ (x : Paths CM.Ex17_1_f.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1235h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.x₁) := ?_mvar.26437h_emptyβ‚‚:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.xβ‚‚) := ?_mvar.29062p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚ƒβŠ’ False All goals completed! πŸ™ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_f.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1055h_all_sub:βˆ€ (x : Paths CM.Ex17_1_f.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1235h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.x₁) := ?_mvar.26437h_emptyβ‚‚:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.xβ‚‚) := ?_mvar.29062h_empty₃:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.xβ‚‚ CM.Ex17_1_f.Dot.x₃) := ?_mvar.29558hx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ Falseh:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_f.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1055h_all_sub:βˆ€ (x : Paths CM.Ex17_1_f.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1235h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.x₁) := ?_mvar.26437h_emptyβ‚‚:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.xβ‚‚) := ?_mvar.29062h_empty₃:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.xβ‚‚ CM.Ex17_1_f.Dot.x₃) := ?_mvar.29558hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ Falseh:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_f.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1055h_all_sub:βˆ€ (x : Paths CM.Ex17_1_f.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1235h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.x₁) := ?_mvar.26437h_emptyβ‚‚:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.xβ‚‚) := ?_mvar.29062h_empty₃:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.xβ‚‚ CM.Ex17_1_f.Dot.x₃) := ?_mvar.29558hx:(⊀_ Paths Dot) = Dot.xβ‚ƒβŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_f.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1055h_all_sub:βˆ€ (x : Paths CM.Ex17_1_f.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1235h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.x₁) := ?_mvar.26437h_emptyβ‚‚:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.xβ‚‚) := ?_mvar.29062h_empty₃:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.xβ‚‚ CM.Ex17_1_f.Dot.x₃) := ?_mvar.29558hx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ Falseh:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_f.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1055h_all_sub:βˆ€ (x : Paths CM.Ex17_1_f.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1235h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.x₁) := ?_mvar.26437h_emptyβ‚‚:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.xβ‚‚) := ?_mvar.29062h_empty₃:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.xβ‚‚ CM.Ex17_1_f.Dot.x₃) := ?_mvar.29558hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ Falseh:HasTerminal (Paths Dot)h_all_uniq:(x : Paths CM.Ex17_1_f.Dot) β†’ Unique (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1055h_all_sub:βˆ€ (x : Paths CM.Ex17_1_f.Dot), Subsingleton (x ⟢ ⊀_ Paths CM.Ex17_1_f.Dot) := ?_mvar.1235h_empty₁:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.x₁) := ?_mvar.26437h_emptyβ‚‚:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.xβ‚‚) := ?_mvar.29062h_empty₃:Β¬Nonempty (Quiver.Path CM.Ex17_1_f.Dot.xβ‚‚ CM.Ex17_1_f.Dot.x₃) := ?_mvar.29558hx:(⊀_ Paths Dot) = Dot.xβ‚ƒβŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.x₃)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₃)h_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁)h_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)h_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)hx:(⊀_ Paths Dot) = Dot.xβ‚ƒβŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.x₁)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₁)h_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁)h_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)h_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)hx:(⊀_ Paths Dot) = Dot.xβ‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.x₁)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₁)h_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁)h_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)h_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)hx:(⊀_ Paths Dot) = Dot.x₁h_uniq₁:Unique (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.x₁) := @_fvar.30160 CM.Ex17_1_f.Dot.xβ‚ƒβŠ’ False have h_nonemptyβ‚‚ : Nonempty (Quiver.Path Dot.x₃ Dot.x₁) := ⊒ Β¬HasTerminal (Paths Dot) All goals completed! πŸ™ All goals completed! πŸ™ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.xβ‚‚)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚‚)h_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁)h_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)h_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)hx:(⊀_ Paths Dot) = Dot.xβ‚‚βŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.xβ‚‚)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.xβ‚‚)h_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁)h_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)h_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)hx:(⊀_ Paths Dot) = Dot.xβ‚‚h_uniqβ‚‚:Unique (Quiver.Path CM.Ex17_1_f.Dot.x₃ CM.Ex17_1_f.Dot.xβ‚‚) := @_fvar.30214 CM.Ex17_1_f.Dot.xβ‚ƒβŠ’ False have h_nonemptyβ‚‚ : Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚) := ⊒ Β¬HasTerminal (Paths Dot) All goals completed! πŸ™ All goals completed! πŸ™ h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.x₃)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₃)h_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁)h_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)h_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)hx:(⊀_ Paths Dot) = Dot.xβ‚ƒβŠ’ False h:HasTerminal (Paths Dot)h_all_uniq:(x : Paths Dot) β†’ Unique (x ⟢ Dot.x₃)h_all_sub:βˆ€ (x : Paths Dot), Subsingleton (x ⟢ Dot.x₃)h_empty₁:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.x₁)h_emptyβ‚‚:Β¬Nonempty (Quiver.Path Dot.x₃ Dot.xβ‚‚)h_empty₃:Β¬Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃)hx:(⊀_ Paths Dot) = Dot.x₃h_uniq₃:Unique (Quiver.Path CM.Ex17_1_f.Dot.xβ‚‚ CM.Ex17_1_f.Dot.x₃) := @_fvar.30267 CM.Ex17_1_f.Dot.xβ‚‚βŠ’ False have h_nonempty₃ : Nonempty (Quiver.Path Dot.xβ‚‚ Dot.x₃) := ⊒ Β¬HasTerminal (Paths Dot) All goals completed! πŸ™ All goals completed! πŸ™

3. Commuting diagrams

Definition: Commutes (p. 201)

We say that a diagram of shape G in π’ž commutes if for each pair p, q of dots in G, all paths in G from p to q are interpreted as the same map in π’ž.

The "interpretation" of dots in G as objects of π’ž and paths in G as maps of π’ž is performed by a functor from the free category 𝑭(G) to π’ž, written in Lean as CategoryTheory.Paths Dot β₯€ π’ž, where p q : Dot.

Exercise 2 (p. 202)

Show that a diagram of shape

inductive Dot | x₁ | xβ‚‚ inductive Arrow : Dot β†’ Dot β†’ Type | f : Arrow .x₁ .xβ‚‚ | g : Arrow .xβ‚‚ .x₁ instance : Quiver Dot where Hom := Arrow

commutes if and only if the maps assigned to the two arrows are inverse.

Solution: Exercise 2

We need to show that under a functor from the free category 𝑭(G) to π’ž, all paths between each pair of dots in 𝑭(G) correspond to the same map in π’ž if and only if the two arrows in the graph correspond to inverse maps in π’ž. Since there are four possible pairings of dots, the proof of the backward ("if") direction contains four parts.

example {π’ž : Type u} [Category.{v, u} π’ž] (F : Paths Dot β₯€ π’ž) : -- Let x₁' be the object in π’ž associated with Dot.x₁ in 𝐹(G) let x₁' : π’ž := F.obj Dot.x₁ -- Let xβ‚‚' be the object in π’ž associated with Dot.xβ‚‚ in 𝐹(G) let xβ‚‚' : π’ž := F.obj Dot.xβ‚‚ -- Let f' be the morphism in π’ž associated with Arrow.f in 𝐹(G) let f' : x₁' ⟢ xβ‚‚' := F.map (Quiver.Hom.toPath Arrow.f) -- Let g' be the morphism in π’ž associated with Arrow.g in 𝐹(G) let g' : xβ‚‚' ⟢ x₁' := F.map (Quiver.Hom.toPath Arrow.g) -- Dot.x₁ ⟢ Dot.x₁ is interpreted as the identity on x₁' in π’ž (βˆ€ p₁ : Quiver.Path Dot.x₁ Dot.x₁, F.map p₁ = πŸ™ x₁') ∧ -- Dot.xβ‚‚ ⟢ Dot.xβ‚‚ is interpreted as the identity on xβ‚‚' in π’ž (βˆ€ pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚, F.map pβ‚‚ = πŸ™ xβ‚‚') ∧ -- Dot.x₁ ⟢ Dot.xβ‚‚ is interpreted as f' in π’ž (βˆ€ p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚, F.map p₁₂ = f') ∧ -- Dot.xβ‚‚ ⟢ Dot.x₁ is interpreted as g' in π’ž (βˆ€ p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁, F.map p₂₁ = g') ↔ -- The maps assigned to the two arrows in G are inverse g' ⊚ f' = πŸ™ x₁' ∧ f' ⊚ g' = πŸ™ xβ‚‚' := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žβŠ’ let x₁' := F.obj Dot.x₁; let xβ‚‚' := F.obj Dot.xβ‚‚; let f' := F.map (Quiver.Hom.toPath Arrow.f); let g' := F.map (Quiver.Hom.toPath Arrow.g); ((βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ x₁') ∧ (βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ xβ‚‚') ∧ (βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = f') ∧ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = g') ↔ g' ⊚ f' = πŸ™ x₁' ∧ f' ⊚ g' = πŸ™ xβ‚‚' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žβŠ’ ((βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)) ∧ (βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)) ∧ (βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)) ∧ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g)) β†’ F.map (Quiver.Hom.toPath Arrow.g) ⊚ F.map (Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁) ∧ F.map (Quiver.Hom.toPath Arrow.f) ⊚ F.map (Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žβŠ’ F.map (Quiver.Hom.toPath Arrow.g) ⊚ F.map (Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁) ∧ F.map (Quiver.Hom.toPath Arrow.f) ⊚ F.map (Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚) β†’ (βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)) ∧ (βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)) ∧ (βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)) ∧ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g) -- Proof of the forward ("only if") direction π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žβŠ’ ((βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)) ∧ (βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)) ∧ (βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)) ∧ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g)) β†’ F.map (Quiver.Hom.toPath Arrow.g) ⊚ F.map (Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁) ∧ F.map (Quiver.Hom.toPath Arrow.f) ⊚ F.map (Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚) repeat π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žβŠ’ ((βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)) ∧ (βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)) ∧ (βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)) ∧ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g)) β†’ F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁) ∧ F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)hβ‚‚:βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)h₁₂:βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)h₂₁:βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g)⊒ F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁) ∧ F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)hβ‚‚:βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)h₁₂:βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)h₂₁:βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g)⊒ F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)hβ‚‚:βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)h₁₂:βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)h₂₁:βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g)⊒ F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)hβ‚‚:βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)h₁₂:βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)h₂₁:βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g)⊒ F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)hβ‚‚:βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)h₁₂:βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)h₂₁:βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g)⊒ F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚) All goals completed! πŸ™ -- Proof of the backward ("if") direction π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žβŠ’ F.map (Quiver.Hom.toPath Arrow.g) ⊚ F.map (Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁) ∧ F.map (Quiver.Hom.toPath Arrow.f) ⊚ F.map (Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚) β†’ (βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)) ∧ (βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)) ∧ (βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)) ∧ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g) repeat π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žβŠ’ F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁) ∧ F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚) β†’ (βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)) ∧ (βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)) ∧ (βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)) ∧ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ (βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)) ∧ (βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)) ∧ (βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)) ∧ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g) -- βˆ€ p₁ : Quiver.Path Dot.x₁ Dot.x₁, F.map p₁ = πŸ™ x₁' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ βˆ€ (p₁ : Quiver.Path Dot.x₁ Dot.x₁), F.map p₁ = πŸ™ (F.obj Dot.x₁) let rec aux₁ (p : Quiver.Path Dot.x₁ Dot.x₁) : F.map p = πŸ™ (F.obj Dot.x₁) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚βŠ’ F.map p = πŸ™ (F.obj Dot.x₁) match p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚βŠ’ F.map Quiver.Path.nil = πŸ™ (F.obj Dot.x₁) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.x₁tail:Quiver.Path Dot.x₁ Dot.xβ‚‚βŠ’ F.map (tail.cons Arrow.g) = πŸ™ (F.obj Dot.x₁) match tail with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.x₁tail:Quiver.Path Dot.x₁ Dot.xβ‚‚tail':Quiver.Path Dot.x₁ Dot.xβ‚βŠ’ F.map ((tail'.cons Arrow.f).cons Arrow.g) = πŸ™ (F.obj Dot.x₁) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.x₁tail:Quiver.Path Dot.x₁ Dot.xβ‚‚tail':Quiver.Path Dot.x₁ Dot.xβ‚βŠ’ F.map ((Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) ⊚ tail') = πŸ™ (F.obj Dot.x₁) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.x₁tail:Quiver.Path Dot.x₁ Dot.xβ‚‚tail':Quiver.Path Dot.x₁ Dot.xβ‚βŠ’ F.map tail' = πŸ™ (F.obj Dot.x₁) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚βŠ’ F.map p = πŸ™ (F.obj Dot.x₁) All goals completed! πŸ™ -- βˆ€ pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚, F.map pβ‚‚ = πŸ™ xβ‚‚' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ βˆ€ (pβ‚‚ : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚), F.map pβ‚‚ = πŸ™ (F.obj Dot.xβ‚‚) let rec auxβ‚‚ (p : Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚) : F.map p = πŸ™ (F.obj Dot.xβ‚‚) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚βŠ’ F.map p = πŸ™ (F.obj Dot.xβ‚‚) match p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚βŠ’ F.map Quiver.Path.nil = πŸ™ (F.obj Dot.xβ‚‚) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚tail:Quiver.Path Dot.xβ‚‚ Dot.xβ‚βŠ’ F.map (tail.cons Arrow.f) = πŸ™ (F.obj Dot.xβ‚‚) match tail with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚tail:Quiver.Path Dot.xβ‚‚ Dot.x₁tail':Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚βŠ’ F.map ((tail'.cons Arrow.g).cons Arrow.f) = πŸ™ (F.obj Dot.xβ‚‚) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚tail:Quiver.Path Dot.xβ‚‚ Dot.x₁tail':Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚βŠ’ F.map ((Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) ⊚ tail') = πŸ™ (F.obj Dot.xβ‚‚) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚tail:Quiver.Path Dot.xβ‚‚ Dot.x₁tail':Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚βŠ’ F.map tail' = πŸ™ (F.obj Dot.xβ‚‚) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚βŠ’ F.map p = πŸ™ (F.obj Dot.xβ‚‚) All goals completed! πŸ™ -- βˆ€ p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚, F.map p₁₂ = f' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ βˆ€ (p₁₂ : Quiver.Path Dot.x₁ Dot.xβ‚‚), F.map p₁₂ = F.map (Quiver.Hom.toPath Arrow.f) let rec aux₁₂ (p : Quiver.Path Dot.x₁ Dot.xβ‚‚) : F.map p = F.map (Quiver.Hom.toPath Arrow.f) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚‚βŠ’ F.map p = F.map (Quiver.Hom.toPath Arrow.f) match p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚‚tail:Quiver.Path Dot.x₁ Dot.xβ‚βŠ’ F.map (tail.cons Arrow.f) = F.map (Quiver.Hom.toPath Arrow.f) match tail with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚‚tail:Quiver.Path Dot.x₁ Dot.xβ‚βŠ’ F.map (Quiver.Path.nil.cons Arrow.f) = F.map (Quiver.Hom.toPath Arrow.f) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚‚tail:Quiver.Path Dot.x₁ Dot.x₁tail':Quiver.Path Dot.x₁ Dot.xβ‚‚βŠ’ F.map ((tail'.cons Arrow.g).cons Arrow.f) = F.map (Quiver.Hom.toPath Arrow.f) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚‚tail:Quiver.Path Dot.x₁ Dot.x₁tail':Quiver.Path Dot.x₁ Dot.xβ‚‚βŠ’ F.map ((Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) ⊚ tail') = F.map (Quiver.Hom.toPath Arrow.f) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚‚tail:Quiver.Path Dot.x₁ Dot.x₁tail':Quiver.Path Dot.x₁ Dot.xβ‚‚βŠ’ F.map tail' = F.map (Quiver.Hom.toPath Arrow.f) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.x₁ Dot.xβ‚‚βŠ’ F.map p = F.map (Quiver.Hom.toPath Arrow.f) All goals completed! πŸ™ -- βˆ€ p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁, F.map p₂₁ = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)⊒ βˆ€ (p₂₁ : Quiver.Path Dot.xβ‚‚ Dot.x₁), F.map p₂₁ = F.map (Quiver.Hom.toPath Arrow.g) let rec aux₂₁ (p : Quiver.Path Dot.xβ‚‚ Dot.x₁) : F.map p = F.map (Quiver.Hom.toPath Arrow.g) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚βŠ’ F.map p = F.map (Quiver.Hom.toPath Arrow.g) match p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.x₁tail:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚βŠ’ F.map (tail.cons Arrow.g) = F.map (Quiver.Hom.toPath Arrow.g) match tail with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.x₁tail:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚βŠ’ F.map (Quiver.Path.nil.cons Arrow.g) = F.map (Quiver.Hom.toPath Arrow.g) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.x₁tail:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚tail':Quiver.Path Dot.xβ‚‚ Dot.xβ‚βŠ’ F.map ((tail'.cons Arrow.f).cons Arrow.g) = F.map (Quiver.Hom.toPath Arrow.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.x₁tail:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚tail':Quiver.Path Dot.xβ‚‚ Dot.xβ‚βŠ’ F.map ((Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) ⊚ tail') = F.map (Quiver.Hom.toPath Arrow.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.x₁tail:Quiver.Path Dot.xβ‚‚ Dot.xβ‚‚tail':Quiver.Path Dot.xβ‚‚ Dot.xβ‚βŠ’ F.map tail' = F.map (Quiver.Hom.toPath Arrow.g) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Dot β₯€ π’žh₁:F.map (Quiver.Hom.toPath Arrow.g ⊚ Quiver.Hom.toPath Arrow.f) = πŸ™ (F.obj Dot.x₁)hβ‚‚:F.map (Quiver.Hom.toPath Arrow.f ⊚ Quiver.Hom.toPath Arrow.g) = πŸ™ (F.obj Dot.xβ‚‚)p:Quiver.Path Dot.xβ‚‚ Dot.xβ‚βŠ’ F.map p = F.map (Quiver.Hom.toPath Arrow.g) All goals completed! πŸ™
Exercise 3 (p. 203)

In the diagram

inductive Vertex | A | B | C | D | E | F | G | H inductive Edge : Vertex β†’ Vertex β†’ Type | f : Edge .A .B | g : Edge .B .C | h : Edge .C .D | i : Edge .A .E | j : Edge .B .F | k : Edge .C .G | l : Edge .D .H | m : Edge .E .F | n : Edge .F .G | p : Edge .G .H instance : Quiver Vertex where Hom := Edge

the three equations (1) {jf = mi}, (2) {kg = nj}, (3) {lh = pk} actually force the diagram to commute; but you are just asked to prove that pnmi = lhgf

Solution: Exercise 3

We can prove this directly in the free category on the graph using only the associative property of path composition.

open Edge Quiver Quiver.Hom Quiver.Path Vertex in example (h₁ : (toPath f |>.comp (toPath j)) = (toPath i |>.comp (toPath m) : Path A F)) (hβ‚‚ : (toPath g |>.comp (toPath k)) = (toPath j |>.comp (toPath n) : Path B G)) (h₃ : (toPath h |>.comp (toPath l)) = (toPath k |>.comp (toPath p) : Path C H)) : (toPath i |>.comp (toPath m) |>.comp (toPath n) |>.comp (toPath p)) = (toPath f |>.comp (toPath g) |>.comp (toPath h) |>.comp (Hom.toPath l) : Path A H) := h₁:(toPath f).comp (toPath j) = (toPath i).comp (toPath m)hβ‚‚:(toPath g).comp (toPath k) = (toPath j).comp (toPath n)h₃:(toPath h).comp (toPath l) = (toPath k).comp (toPath p)⊒ (((toPath i).comp (toPath m)).comp (toPath n)).comp (toPath p) = (((toPath f).comp (toPath g)).comp (toPath h)).comp (toPath l) h₁:(toPath f).comp (toPath j) = (toPath i).comp (toPath m)hβ‚‚:(toPath g).comp (toPath k) = (toPath j).comp (toPath n)h₃:(toPath h).comp (toPath l) = (toPath k).comp (toPath p)⊒ ((toPath f).comp (toPath j)).comp ((toPath n).comp (toPath p)) = (((toPath f).comp (toPath g)).comp (toPath h)).comp (toPath l) h₁:(toPath f).comp (toPath j) = (toPath i).comp (toPath m)hβ‚‚:(toPath g).comp (toPath k) = (toPath j).comp (toPath n)h₃:(toPath h).comp (toPath l) = (toPath k).comp (toPath p)⊒ ((toPath f).comp ((toPath g).comp (toPath k))).comp (toPath p) = (((toPath f).comp (toPath g)).comp (toPath h)).comp (toPath l) h₁:(toPath f).comp (toPath j) = (toPath i).comp (toPath m)hβ‚‚:(toPath g).comp (toPath k) = (toPath j).comp (toPath n)h₃:(toPath h).comp (toPath l) = (toPath k).comp (toPath p)⊒ (toPath f).comp ((toPath g).comp ((toPath h).comp (toPath l))) = (((toPath f).comp (toPath g)).comp (toPath h)).comp (toPath l) repeat All goals completed! πŸ™
Exercise 4 (p. 203)

For each of these diagrams, find a shortest list of equations that will make it commute.

...

After you have found the answers try to explain clearly how you know, from the equations you chose, that all possible paths give equal composites.

Solution: Exercise 4

(a) A shortest list of equations that will make diagram (a) commute is: gf = 1_A, \quad fg = 1_B, \quad g = h

(cf. Exercise 2 above.)

inductive Vertex | A | B inductive Edge : Vertex β†’ Vertex β†’ Type | f : Edge .A .B | g : Edge .B .A | h : Edge .B .A instance : Quiver Vertex where Hom := Edge example {π’ž : Type u} [Category.{v, u} π’ž] (F : Paths Vertex β₯€ π’ž) : -- Let A' be the object in π’ž associated with Vertex.A in 𝐹(G) let A' : π’ž := F.obj Vertex.A -- Let B' be the object in π’ž associated with Vertex.B in 𝐹(G) let B' : π’ž := F.obj Vertex.B -- Let f' be the morphism in π’ž associated with Edge.f in 𝐹(G) let f' : A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f) -- Let g' be the morphism in π’ž associated with Edge.g in 𝐹(G) let g' : B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.g) -- Let h' be the morphism in π’ž associated with Edge.h in 𝐹(G) let h' : B' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h) -- The 3 equations required to make the diagram commute g' ⊚ f' = πŸ™ A' ∧ f' ⊚ g' = πŸ™ B' ∧ g' = h' β†’ -- .A ⟢ .A is interpreted as the identity on A' in π’ž (βˆ€ p : Quiver.Path Vertex.A Vertex.A, F.map p = πŸ™ A') ∧ -- .B ⟢ .B is interpreted as the identity on B' in π’ž (βˆ€ p : Quiver.Path Vertex.B Vertex.B, F.map p = πŸ™ B') ∧ -- .A ⟢ .B is interpreted as f' in π’ž (βˆ€ p : Quiver.Path Vertex.A Vertex.B, F.map p = f') ∧ -- .B ⟢ .A is interpreted as g' in π’ž (βˆ€ p : Quiver.Path Vertex.B Vertex.A, F.map p = g') := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žβŠ’ let A' := F.obj Vertex.A; let B' := F.obj Vertex.B; let f' := F.map (Quiver.Hom.toPath Edge.f); let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); g' ⊚ f' = πŸ™ A' ∧ f' ⊚ g' = πŸ™ B' ∧ g' = h' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' intro A' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B⊒ let f' := F.map (Quiver.Hom.toPath Edge.f); let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); g' ⊚ f' = πŸ™ A' ∧ f' ⊚ g' = πŸ™ B' ∧ g' = h' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)⊒ let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); g' ⊚ f' = πŸ™ A' ∧ f' ⊚ g' = πŸ™ B' ∧ g' = h' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)⊒ let h' := F.map (Quiver.Hom.toPath Edge.h); g' ⊚ f' = πŸ™ A' ∧ f' ⊚ g' = πŸ™ B' ∧ g' = h' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)⊒ g' ⊚ f' = πŸ™ A' ∧ f' ⊚ g' = πŸ™ B' ∧ g' = h' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:g' ⊚ f' = πŸ™ A'hβ‚‚:f' ⊚ g' = πŸ™ B'h₃:g' = h'⊒ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' -- βˆ€ p : Quiver.Path Vertex.A Vertex.A, F.map p = πŸ™ A' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A' let rec auxAA (p : Quiver.Path Vertex.A Vertex.A) : F.map p = πŸ™ (F.obj Vertex.A) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.A⊒ F.map p = πŸ™ (F.obj Vertex.A) match p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.A⊒ F.map Quiver.Path.nil = πŸ™ (F.obj Vertex.A) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Atail:Quiver.Path Vertex.A Vertex.Ae:Vertex.B ⟢ Vertex.A⊒ F.map ((tail.cons Edge.f).cons e) = πŸ™ (F.obj Vertex.A) have : F.map ((tail.cons Edge.f).cons e) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.A⊒ F.map p = πŸ™ (F.obj Vertex.A) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Atail:Quiver.Path Vertex.A Vertex.A⊒ F.map ((tail.cons Edge.f).cons Edge.g) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Atail:Quiver.Path Vertex.A Vertex.A⊒ F.map ((tail.cons Edge.f).cons Edge.h) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Atail:Quiver.Path Vertex.A Vertex.A⊒ F.map ((tail.cons Edge.f).cons Edge.g) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Atail:Quiver.Path Vertex.A Vertex.A⊒ F.map ((tail.cons Edge.f).cons Edge.h) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Atail:Quiver.Path Vertex.A Vertex.A⊒ F.map (Quiver.Hom.toPath Edge.h ⊚ Quiver.Hom.toPath Edge.f ⊚ tail) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Atail:Quiver.Path Vertex.A Vertex.Ae:Vertex.B ⟢ Vertex.Athis:[Error pretty printing expression: unknown free variable `_uniq.2560`. Falling back to raw printer.] Eq.{?_uniq.4163} ?_uniq.4519 (CategoryTheory.Functor.map.{?_uniq.4167, ?_uniq.4166, ?_uniq.4165, ?_uniq.4164} ?_uniq.4168 ?_uniq.4169 ?_uniq.4170 ?_uniq.4171 _uniq.2560 ?_uniq.4174 ?_uniq.4175 (Quiver.Path.cons.{?_uniq.4197, ?_uniq.4196} ?_uniq.4205 ?_uniq.4206 ?_uniq.4207 ?_uniq.4208 ?_uniq.4209 (Quiver.Path.cons.{?_uniq.4177, ?_uniq.4176} ?_uniq.4185 ?_uniq.4186 ?_uniq.4187 ?_uniq.4188 ?_uniq.4189 _uniq.3265 CM.Ex17_4_a.Edge.f) _uniq.3266)) (CategoryTheory.Functor.map.{?_uniq.4214, ?_uniq.4213, ?_uniq.4212, ?_uniq.4211} ?_uniq.4215 ?_uniq.4216 ?_uniq.4217 ?_uniq.4218 _uniq.2560 ?_uniq.4221 ?_uniq.4222 (CategoryTheory.CategoryStruct.comp.{?_uniq.4224, ?_uniq.4223} ?_uniq.4225 ?_uniq.4226 ?_uniq.4227 ?_uniq.4228 ?_uniq.4229 _uniq.3265 (CategoryTheory.CategoryStruct.comp.{?_uniq.4316, ?_uniq.4315} ?_uniq.4317 ?_uniq.4318 ?_uniq.4319 ?_uniq.4320 ?_uniq.4321 (Quiver.Hom.toPath.{?_uniq.4408, ?_uniq.4407} ?_uniq.4409 ?_uniq.4410 ?_uniq.4411 ?_uniq.4412 CM.Ex17_4_a.Edge.f) (Quiver.Hom.toPath.{?_uniq.4452, ?_uniq.4451} ?_uniq.4453 ?_uniq.4454 ?_uniq.4455 ?_uniq.4456 CM.Ex17_4_a.Edge.g)))) := ?_mvar.4520⊒ F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) = πŸ™ (F.obj Vertex.A) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Atail:Quiver.Path Vertex.A Vertex.Ae:Vertex.B ⟢ Vertex.Athis:[Error pretty printing expression: unknown free variable `_uniq.2560`. Falling back to raw printer.] Eq.{?_uniq.4163} ?_uniq.4519 (CategoryTheory.Functor.map.{?_uniq.4167, ?_uniq.4166, ?_uniq.4165, ?_uniq.4164} ?_uniq.4168 ?_uniq.4169 ?_uniq.4170 ?_uniq.4171 _uniq.2560 ?_uniq.4174 ?_uniq.4175 (Quiver.Path.cons.{?_uniq.4197, ?_uniq.4196} ?_uniq.4205 ?_uniq.4206 ?_uniq.4207 ?_uniq.4208 ?_uniq.4209 (Quiver.Path.cons.{?_uniq.4177, ?_uniq.4176} ?_uniq.4185 ?_uniq.4186 ?_uniq.4187 ?_uniq.4188 ?_uniq.4189 _uniq.3265 CM.Ex17_4_a.Edge.f) _uniq.3266)) (CategoryTheory.Functor.map.{?_uniq.4214, ?_uniq.4213, ?_uniq.4212, ?_uniq.4211} ?_uniq.4215 ?_uniq.4216 ?_uniq.4217 ?_uniq.4218 _uniq.2560 ?_uniq.4221 ?_uniq.4222 (CategoryTheory.CategoryStruct.comp.{?_uniq.4224, ?_uniq.4223} ?_uniq.4225 ?_uniq.4226 ?_uniq.4227 ?_uniq.4228 ?_uniq.4229 _uniq.3265 (CategoryTheory.CategoryStruct.comp.{?_uniq.4316, ?_uniq.4315} ?_uniq.4317 ?_uniq.4318 ?_uniq.4319 ?_uniq.4320 ?_uniq.4321 (Quiver.Hom.toPath.{?_uniq.4408, ?_uniq.4407} ?_uniq.4409 ?_uniq.4410 ?_uniq.4411 ?_uniq.4412 CM.Ex17_4_a.Edge.f) (Quiver.Hom.toPath.{?_uniq.4452, ?_uniq.4451} ?_uniq.4453 ?_uniq.4454 ?_uniq.4455 ?_uniq.4456 CM.Ex17_4_a.Edge.g)))) := ?_mvar.4520⊒ F.map tail = πŸ™ (F.obj Vertex.A) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.A⊒ F.map p = πŸ™ A' All goals completed! πŸ™ -- βˆ€ p : Quiver.Path Vertex.B Vertex.B, F.map p = πŸ™ B' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B' let rec auxBB (p : Quiver.Path Vertex.B Vertex.B) : F.map p = πŸ™ (F.obj Vertex.B) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.B⊒ F.map p = πŸ™ (F.obj Vertex.B) match p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.B⊒ F.map Quiver.Path.nil = πŸ™ (F.obj Vertex.B) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Btail:Quiver.Path Vertex.B Vertex.Be:Vertex.B ⟢ Vertex.A⊒ F.map ((tail.cons e).cons Edge.f) = πŸ™ (F.obj Vertex.B) have : F.map ((tail.cons e).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.B⊒ F.map p = πŸ™ (F.obj Vertex.B) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Btail:Quiver.Path Vertex.B Vertex.B⊒ F.map ((tail.cons Edge.g).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Btail:Quiver.Path Vertex.B Vertex.B⊒ F.map ((tail.cons Edge.h).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Btail:Quiver.Path Vertex.B Vertex.B⊒ F.map ((tail.cons Edge.g).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Btail:Quiver.Path Vertex.B Vertex.B⊒ F.map ((tail.cons Edge.h).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Btail:Quiver.Path Vertex.B Vertex.B⊒ F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.h ⊚ tail) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Btail:Quiver.Path Vertex.B Vertex.Be:Vertex.B ⟢ Vertex.Athis:[Error pretty printing expression: unknown free variable `_uniq.2560`. Falling back to raw printer.] Eq.{?_uniq.16383} ?_uniq.16739 (CategoryTheory.Functor.map.{?_uniq.16387, ?_uniq.16386, ?_uniq.16385, ?_uniq.16384} ?_uniq.16388 ?_uniq.16389 ?_uniq.16390 ?_uniq.16391 _uniq.2560 ?_uniq.16394 ?_uniq.16395 (Quiver.Path.cons.{?_uniq.16417, ?_uniq.16416} ?_uniq.16425 ?_uniq.16426 ?_uniq.16427 ?_uniq.16428 ?_uniq.16429 (Quiver.Path.cons.{?_uniq.16397, ?_uniq.16396} ?_uniq.16405 ?_uniq.16406 ?_uniq.16407 ?_uniq.16408 ?_uniq.16409 _uniq.15485 _uniq.15486) CM.Ex17_4_a.Edge.f)) (CategoryTheory.Functor.map.{?_uniq.16434, ?_uniq.16433, ?_uniq.16432, ?_uniq.16431} ?_uniq.16435 ?_uniq.16436 ?_uniq.16437 ?_uniq.16438 _uniq.2560 ?_uniq.16441 ?_uniq.16442 (CategoryTheory.CategoryStruct.comp.{?_uniq.16444, ?_uniq.16443} ?_uniq.16445 ?_uniq.16446 ?_uniq.16447 ?_uniq.16448 ?_uniq.16449 _uniq.15485 (CategoryTheory.CategoryStruct.comp.{?_uniq.16536, ?_uniq.16535} ?_uniq.16537 ?_uniq.16538 ?_uniq.16539 ?_uniq.16540 ?_uniq.16541 (Quiver.Hom.toPath.{?_uniq.16628, ?_uniq.16627} ?_uniq.16629 ?_uniq.16630 ?_uniq.16631 ?_uniq.16632 CM.Ex17_4_a.Edge.g) (Quiver.Hom.toPath.{?_uniq.16672, ?_uniq.16671} ?_uniq.16673 ?_uniq.16674 ?_uniq.16675 ?_uniq.16676 CM.Ex17_4_a.Edge.f)))) := ?_mvar.16740⊒ F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) = πŸ™ (F.obj Vertex.B) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Btail:Quiver.Path Vertex.B Vertex.Be:Vertex.B ⟢ Vertex.Athis:[Error pretty printing expression: unknown free variable `_uniq.2560`. Falling back to raw printer.] Eq.{?_uniq.16383} ?_uniq.16739 (CategoryTheory.Functor.map.{?_uniq.16387, ?_uniq.16386, ?_uniq.16385, ?_uniq.16384} ?_uniq.16388 ?_uniq.16389 ?_uniq.16390 ?_uniq.16391 _uniq.2560 ?_uniq.16394 ?_uniq.16395 (Quiver.Path.cons.{?_uniq.16417, ?_uniq.16416} ?_uniq.16425 ?_uniq.16426 ?_uniq.16427 ?_uniq.16428 ?_uniq.16429 (Quiver.Path.cons.{?_uniq.16397, ?_uniq.16396} ?_uniq.16405 ?_uniq.16406 ?_uniq.16407 ?_uniq.16408 ?_uniq.16409 _uniq.15485 _uniq.15486) CM.Ex17_4_a.Edge.f)) (CategoryTheory.Functor.map.{?_uniq.16434, ?_uniq.16433, ?_uniq.16432, ?_uniq.16431} ?_uniq.16435 ?_uniq.16436 ?_uniq.16437 ?_uniq.16438 _uniq.2560 ?_uniq.16441 ?_uniq.16442 (CategoryTheory.CategoryStruct.comp.{?_uniq.16444, ?_uniq.16443} ?_uniq.16445 ?_uniq.16446 ?_uniq.16447 ?_uniq.16448 ?_uniq.16449 _uniq.15485 (CategoryTheory.CategoryStruct.comp.{?_uniq.16536, ?_uniq.16535} ?_uniq.16537 ?_uniq.16538 ?_uniq.16539 ?_uniq.16540 ?_uniq.16541 (Quiver.Hom.toPath.{?_uniq.16628, ?_uniq.16627} ?_uniq.16629 ?_uniq.16630 ?_uniq.16631 ?_uniq.16632 CM.Ex17_4_a.Edge.g) (Quiver.Hom.toPath.{?_uniq.16672, ?_uniq.16671} ?_uniq.16673 ?_uniq.16674 ?_uniq.16675 ?_uniq.16676 CM.Ex17_4_a.Edge.f)))) := ?_mvar.16740⊒ F.map tail = πŸ™ (F.obj Vertex.B) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.B⊒ F.map p = πŸ™ B' All goals completed! πŸ™ -- βˆ€ p : Quiver.Path Vertex.A Vertex.B, F.map p = f' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f' let rec auxAB (p : Quiver.Path Vertex.A Vertex.B) : F.map p = F.map (Quiver.Hom.toPath Edge.f) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.B⊒ F.map p = F.map (Quiver.Hom.toPath Edge.f) match p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.B⊒ F.map (Quiver.Path.nil.cons Edge.f) = F.map (Quiver.Hom.toPath Edge.f) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Btail:Quiver.Path Vertex.A Vertex.Be:Vertex.B ⟢ Vertex.A⊒ F.map ((tail.cons e).cons Edge.f) = F.map (Quiver.Hom.toPath Edge.f) have : F.map ((tail.cons e).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.B⊒ F.map p = F.map (Quiver.Hom.toPath Edge.f) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Btail:Quiver.Path Vertex.A Vertex.B⊒ F.map ((tail.cons Edge.g).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Btail:Quiver.Path Vertex.A Vertex.B⊒ F.map ((tail.cons Edge.h).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Btail:Quiver.Path Vertex.A Vertex.B⊒ F.map ((tail.cons Edge.g).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Btail:Quiver.Path Vertex.A Vertex.B⊒ F.map ((tail.cons Edge.h).cons Edge.f) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Btail:Quiver.Path Vertex.A Vertex.B⊒ F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.h) ⊚ tail) = F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Btail:Quiver.Path Vertex.A Vertex.Be:Vertex.B ⟢ Vertex.Athis:[Error pretty printing expression: unknown free variable `_uniq.2560`. Falling back to raw printer.] Eq.{?_uniq.34970} ?_uniq.35348 (CategoryTheory.Functor.map.{?_uniq.34974, ?_uniq.34973, ?_uniq.34972, ?_uniq.34971} ?_uniq.34975 ?_uniq.34976 ?_uniq.34977 ?_uniq.34978 _uniq.2560 ?_uniq.34981 ?_uniq.34982 (Quiver.Path.cons.{?_uniq.35004, ?_uniq.35003} ?_uniq.35012 ?_uniq.35013 ?_uniq.35014 ?_uniq.35015 ?_uniq.35016 (Quiver.Path.cons.{?_uniq.34984, ?_uniq.34983} ?_uniq.34992 ?_uniq.34993 ?_uniq.34994 ?_uniq.34995 ?_uniq.34996 _uniq.33987 _uniq.33988) CM.Ex17_4_a.Edge.f)) (CategoryTheory.Functor.map.{?_uniq.35043, ?_uniq.35042, ?_uniq.35041, ?_uniq.35040} ?_uniq.35044 ?_uniq.35045 ?_uniq.35046 ?_uniq.35047 _uniq.2560 ?_uniq.35050 ?_uniq.35051 (CategoryTheory.CategoryStruct.comp.{?_uniq.35053, ?_uniq.35052} ?_uniq.35054 ?_uniq.35055 ?_uniq.35056 ?_uniq.35057 ?_uniq.35058 _uniq.33987 (CategoryTheory.CategoryStruct.comp.{?_uniq.35145, ?_uniq.35144} ?_uniq.35146 ?_uniq.35147 ?_uniq.35148 ?_uniq.35149 ?_uniq.35150 (Quiver.Hom.toPath.{?_uniq.35237, ?_uniq.35236} ?_uniq.35238 ?_uniq.35239 ?_uniq.35240 ?_uniq.35241 CM.Ex17_4_a.Edge.g) (Quiver.Hom.toPath.{?_uniq.35281, ?_uniq.35280} ?_uniq.35282 ?_uniq.35283 ?_uniq.35284 ?_uniq.35285 CM.Ex17_4_a.Edge.f)))) := ?_mvar.35349⊒ F.map ((Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) ⊚ tail) = F.map (Quiver.Hom.toPath Edge.f) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.Btail:Quiver.Path Vertex.A Vertex.Be:Vertex.B ⟢ Vertex.Athis:[Error pretty printing expression: unknown free variable `_uniq.2560`. Falling back to raw printer.] Eq.{?_uniq.34970} ?_uniq.35348 (CategoryTheory.Functor.map.{?_uniq.34974, ?_uniq.34973, ?_uniq.34972, ?_uniq.34971} ?_uniq.34975 ?_uniq.34976 ?_uniq.34977 ?_uniq.34978 _uniq.2560 ?_uniq.34981 ?_uniq.34982 (Quiver.Path.cons.{?_uniq.35004, ?_uniq.35003} ?_uniq.35012 ?_uniq.35013 ?_uniq.35014 ?_uniq.35015 ?_uniq.35016 (Quiver.Path.cons.{?_uniq.34984, ?_uniq.34983} ?_uniq.34992 ?_uniq.34993 ?_uniq.34994 ?_uniq.34995 ?_uniq.34996 _uniq.33987 _uniq.33988) CM.Ex17_4_a.Edge.f)) (CategoryTheory.Functor.map.{?_uniq.35043, ?_uniq.35042, ?_uniq.35041, ?_uniq.35040} ?_uniq.35044 ?_uniq.35045 ?_uniq.35046 ?_uniq.35047 _uniq.2560 ?_uniq.35050 ?_uniq.35051 (CategoryTheory.CategoryStruct.comp.{?_uniq.35053, ?_uniq.35052} ?_uniq.35054 ?_uniq.35055 ?_uniq.35056 ?_uniq.35057 ?_uniq.35058 _uniq.33987 (CategoryTheory.CategoryStruct.comp.{?_uniq.35145, ?_uniq.35144} ?_uniq.35146 ?_uniq.35147 ?_uniq.35148 ?_uniq.35149 ?_uniq.35150 (Quiver.Hom.toPath.{?_uniq.35237, ?_uniq.35236} ?_uniq.35238 ?_uniq.35239 ?_uniq.35240 ?_uniq.35241 CM.Ex17_4_a.Edge.g) (Quiver.Hom.toPath.{?_uniq.35281, ?_uniq.35280} ?_uniq.35282 ?_uniq.35283 ?_uniq.35284 ?_uniq.35285 CM.Ex17_4_a.Edge.f)))) := ?_mvar.35349⊒ F.map tail = F.map (Quiver.Hom.toPath Edge.f) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.A Vertex.B⊒ F.map p = f' All goals completed! πŸ™ -- βˆ€ p : Quiver.Path Vertex.B Vertex.A, F.map p = g' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)⊒ βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = g' let rec auxBA (p : Quiver.Path Vertex.B Vertex.A) : F.map p = F.map (Quiver.Hom.toPath Edge.g) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.A⊒ F.map p = F.map (Quiver.Hom.toPath Edge.g) match p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Ae:Vertex.B ⟢ Vertex.A⊒ F.map (Quiver.Path.nil.cons e) = F.map (Quiver.Hom.toPath Edge.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.A⊒ F.map (Quiver.Path.nil.cons Edge.g) = F.map (Quiver.Hom.toPath Edge.g)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.A⊒ F.map (Quiver.Path.nil.cons Edge.h) = F.map (Quiver.Hom.toPath Edge.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.A⊒ F.map (Quiver.Path.nil.cons Edge.g) = F.map (Quiver.Hom.toPath Edge.g) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.A⊒ F.map (Quiver.Path.nil.cons Edge.h) = F.map (Quiver.Hom.toPath Edge.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.A⊒ F.map (Quiver.Path.nil.cons Edge.h) = F.map (Quiver.Hom.toPath Edge.h) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Atail:Quiver.Path Vertex.B Vertex.Ae:Vertex.B ⟢ Vertex.A⊒ F.map ((tail.cons Edge.f).cons e) = F.map (Quiver.Hom.toPath Edge.g) have : F.map ((tail.cons Edge.f).cons e) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.A⊒ F.map p = F.map (Quiver.Hom.toPath Edge.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Atail:Quiver.Path Vertex.B Vertex.A⊒ F.map ((tail.cons Edge.f).cons Edge.g) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail)π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Atail:Quiver.Path Vertex.B Vertex.A⊒ F.map ((tail.cons Edge.f).cons Edge.h) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Atail:Quiver.Path Vertex.B Vertex.A⊒ F.map ((tail.cons Edge.f).cons Edge.g) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Atail:Quiver.Path Vertex.B Vertex.A⊒ F.map ((tail.cons Edge.f).cons Edge.h) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Atail:Quiver.Path Vertex.B Vertex.A⊒ F.map ((Quiver.Hom.toPath Edge.h ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) = F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Atail:Quiver.Path Vertex.B Vertex.Ae:Vertex.B ⟢ Vertex.Athis:[Error pretty printing expression: unknown free variable `_uniq.2560`. Falling back to raw printer.] Eq.{?_uniq.52380} ?_uniq.52758 (CategoryTheory.Functor.map.{?_uniq.52384, ?_uniq.52383, ?_uniq.52382, ?_uniq.52381} ?_uniq.52385 ?_uniq.52386 ?_uniq.52387 ?_uniq.52388 _uniq.2560 ?_uniq.52391 ?_uniq.52392 (Quiver.Path.cons.{?_uniq.52414, ?_uniq.52413} ?_uniq.52422 ?_uniq.52423 ?_uniq.52424 ?_uniq.52425 ?_uniq.52426 (Quiver.Path.cons.{?_uniq.52394, ?_uniq.52393} ?_uniq.52402 ?_uniq.52403 ?_uniq.52404 ?_uniq.52405 ?_uniq.52406 _uniq.51387 CM.Ex17_4_a.Edge.f) _uniq.51388)) (CategoryTheory.Functor.map.{?_uniq.52453, ?_uniq.52452, ?_uniq.52451, ?_uniq.52450} ?_uniq.52454 ?_uniq.52455 ?_uniq.52456 ?_uniq.52457 _uniq.2560 ?_uniq.52460 ?_uniq.52461 (CategoryTheory.CategoryStruct.comp.{?_uniq.52463, ?_uniq.52462} ?_uniq.52464 ?_uniq.52465 ?_uniq.52466 ?_uniq.52467 ?_uniq.52468 _uniq.51387 (CategoryTheory.CategoryStruct.comp.{?_uniq.52555, ?_uniq.52554} ?_uniq.52556 ?_uniq.52557 ?_uniq.52558 ?_uniq.52559 ?_uniq.52560 (Quiver.Hom.toPath.{?_uniq.52647, ?_uniq.52646} ?_uniq.52648 ?_uniq.52649 ?_uniq.52650 ?_uniq.52651 CM.Ex17_4_a.Edge.f) (Quiver.Hom.toPath.{?_uniq.52691, ?_uniq.52690} ?_uniq.52692 ?_uniq.52693 ?_uniq.52694 ?_uniq.52695 CM.Ex17_4_a.Edge.g)))) := ?_mvar.52759⊒ F.map ((Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) ⊚ tail) = F.map (Quiver.Hom.toPath Edge.g) π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.Atail:Quiver.Path Vertex.B Vertex.Ae:Vertex.B ⟢ Vertex.Athis:[Error pretty printing expression: unknown free variable `_uniq.2560`. Falling back to raw printer.] Eq.{?_uniq.52380} ?_uniq.52758 (CategoryTheory.Functor.map.{?_uniq.52384, ?_uniq.52383, ?_uniq.52382, ?_uniq.52381} ?_uniq.52385 ?_uniq.52386 ?_uniq.52387 ?_uniq.52388 _uniq.2560 ?_uniq.52391 ?_uniq.52392 (Quiver.Path.cons.{?_uniq.52414, ?_uniq.52413} ?_uniq.52422 ?_uniq.52423 ?_uniq.52424 ?_uniq.52425 ?_uniq.52426 (Quiver.Path.cons.{?_uniq.52394, ?_uniq.52393} ?_uniq.52402 ?_uniq.52403 ?_uniq.52404 ?_uniq.52405 ?_uniq.52406 _uniq.51387 CM.Ex17_4_a.Edge.f) _uniq.51388)) (CategoryTheory.Functor.map.{?_uniq.52453, ?_uniq.52452, ?_uniq.52451, ?_uniq.52450} ?_uniq.52454 ?_uniq.52455 ?_uniq.52456 ?_uniq.52457 _uniq.2560 ?_uniq.52460 ?_uniq.52461 (CategoryTheory.CategoryStruct.comp.{?_uniq.52463, ?_uniq.52462} ?_uniq.52464 ?_uniq.52465 ?_uniq.52466 ?_uniq.52467 ?_uniq.52468 _uniq.51387 (CategoryTheory.CategoryStruct.comp.{?_uniq.52555, ?_uniq.52554} ?_uniq.52556 ?_uniq.52557 ?_uniq.52558 ?_uniq.52559 ?_uniq.52560 (Quiver.Hom.toPath.{?_uniq.52647, ?_uniq.52646} ?_uniq.52648 ?_uniq.52649 ?_uniq.52650 ?_uniq.52651 CM.Ex17_4_a.Edge.f) (Quiver.Hom.toPath.{?_uniq.52691, ?_uniq.52690} ?_uniq.52692 ?_uniq.52693 ?_uniq.52694 ?_uniq.52695 CM.Ex17_4_a.Edge.g)))) := ?_mvar.52759⊒ F.map tail = F.map (Quiver.Hom.toPath Edge.g) All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.AB':_fvar.2558 := @Functor.obj (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.Bf':_fvar.2562 ⟢ _fvar.2565 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.A CM.Ex17_4_a.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_a.Edge.f)g':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.g)h':_fvar.2565 ⟢ _fvar.2562 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_a.Vertex) (Paths.categoryPaths CM.Ex17_4_a.Vertex) _fvar.2558 _fvar.2559 _fvar.2560 CM.Ex17_4_a.Vertex.B CM.Ex17_4_a.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_a.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.g ⊚ Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f ⊚ Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) = F.map (Quiver.Hom.toPath Edge.h)p:Quiver.Path Vertex.B Vertex.A⊒ F.map p = g' All goals completed! πŸ™

(b) A shortest list of equations that will make diagram (b) commute is: hgf = 1_A, \quad fhg = 1_B, \quad gfh = 1_C

Since there are now nine possible pairings of dots, we change our approach from Exercises 2 and 4(a) above and instead employ a more efficient proof by induction.

inductive Vertex | A | B | C inductive Edge : Vertex β†’ Vertex β†’ Type | f : Edge .A .B | g : Edge .B .C | h : Edge .C .A instance : Quiver Vertex where Hom := Edge example {π’ž : Type u} [Category.{v, u} π’ž] (F : Paths Vertex β₯€ π’ž) : -- Let A' be the object in π’ž associated with Vertex.A in 𝐹(G) let A' : π’ž := F.obj Vertex.A -- Let B' be the object in π’ž associated with Vertex.B in 𝐹(G) let B' : π’ž := F.obj Vertex.B -- Let C' be the object in π’ž associated with Vertex.C in 𝐹(G) let C' : π’ž := F.obj Vertex.C -- Let f' be the morphism in π’ž associated with Edge.f in 𝐹(G) let f' : A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f) -- Let g' be the morphism in π’ž associated with Edge.g in 𝐹(G) let g' : B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.g) -- Let h' be the morphism in π’ž associated with Edge.h in 𝐹(G) let h' : C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.h) -- The 3 equations required to make the diagram commute h' ⊚ g' ⊚ f' = πŸ™ A' ∧ f' ⊚ h' ⊚ g' = πŸ™ B' ∧ g' ⊚ f' ⊚ h' = πŸ™ C' β†’ -- .A ⟢ .A is interpreted as the identity on A' in π’ž (βˆ€ p : Quiver.Path Vertex.A Vertex.A, F.map p = πŸ™ A') ∧ -- .B ⟢ .B is interpreted as the identity on B' in π’ž (βˆ€ p : Quiver.Path Vertex.B Vertex.B, F.map p = πŸ™ B') ∧ -- .C ⟢ .C is interpreted as the identity on C' in π’ž (βˆ€ p : Quiver.Path Vertex.C Vertex.C, F.map p = πŸ™ C') ∧ -- .A ⟢ .B is interpreted as f' in π’ž (βˆ€ p : Quiver.Path Vertex.A Vertex.B, F.map p = f') ∧ -- .B ⟢ .C is interpreted as g' in π’ž (βˆ€ p : Quiver.Path Vertex.B Vertex.C, F.map p = g') ∧ -- .C ⟢ .A is interpreted as h' in π’ž (βˆ€ p : Quiver.Path Vertex.C Vertex.A, F.map p = h') ∧ -- .A ⟢ .C is interpreted as g' ⊚ f' in π’ž (βˆ€ p : Quiver.Path Vertex.A Vertex.C, F.map p = g' ⊚ f') ∧ -- .B ⟢ .A is interpreted as h' ⊚ g' in π’ž (βˆ€ p : Quiver.Path Vertex.B Vertex.A, F.map p = h' ⊚ g') ∧ -- .C ⟢ .B is interpreted as f' ⊚ h' in π’ž (βˆ€ p : Quiver.Path Vertex.C Vertex.B, F.map p = f' ⊚ h') := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žβŠ’ let A' := F.obj Vertex.A; let B' := F.obj Vertex.B; let C' := F.obj Vertex.C; let f' := F.map (Quiver.Hom.toPath Edge.f); let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); h' ⊚ g' ⊚ f' = πŸ™ A' ∧ f' ⊚ h' ⊚ g' = πŸ™ B' ∧ g' ⊚ f' ⊚ h' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = g' ⊚ f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = h' ⊚ g') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = f' ⊚ h' intro A' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B⊒ let C' := F.obj Vertex.C; let f' := F.map (Quiver.Hom.toPath Edge.f); let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); h' ⊚ g' ⊚ f' = πŸ™ A' ∧ f' ⊚ h' ⊚ g' = πŸ™ B' ∧ g' ⊚ f' ⊚ h' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = g' ⊚ f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = h' ⊚ g') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C⊒ let f' := F.map (Quiver.Hom.toPath Edge.f); let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); h' ⊚ g' ⊚ f' = πŸ™ A' ∧ f' ⊚ h' ⊚ g' = πŸ™ B' ∧ g' ⊚ f' ⊚ h' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = g' ⊚ f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = h' ⊚ g') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)⊒ let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); h' ⊚ g' ⊚ f' = πŸ™ A' ∧ f' ⊚ h' ⊚ g' = πŸ™ B' ∧ g' ⊚ f' ⊚ h' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = g' ⊚ f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = h' ⊚ g') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)⊒ let h' := F.map (Quiver.Hom.toPath Edge.h); h' ⊚ g' ⊚ f' = πŸ™ A' ∧ f' ⊚ h' ⊚ g' = πŸ™ B' ∧ g' ⊚ f' ⊚ h' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = g' ⊚ f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = h' ⊚ g') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)⊒ h' ⊚ g' ⊚ f' = πŸ™ A' ∧ f' ⊚ h' ⊚ g' = πŸ™ B' ∧ g' ⊚ f' ⊚ h' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = g' ⊚ f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = h' ⊚ g') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:h' ⊚ g' ⊚ f' = πŸ™ A'hβ‚‚:f' ⊚ h' ⊚ g' = πŸ™ B'h₃:g' ⊚ f' ⊚ h' = πŸ™ C'⊒ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = g' ⊚ f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = h' ⊚ g') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = f' ⊚ h' suffices βˆ€ {u v : Vertex} (p : Quiver.Path u v), F.map p = match u, v with | .A, .A => πŸ™ A' | .B, .B => πŸ™ B' | .C, .C => πŸ™ C' | .A, .B => f' | .B, .C => g' | .C, .A => h' | .A, .C => g' ⊚ f' | .B, .A => h' ⊚ g' | .C, .B => f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:h' ⊚ g' ⊚ f' = πŸ™ A'hβ‚‚:f' ⊚ h' ⊚ g' = πŸ™ B'h₃:g' ⊚ f' ⊚ h' = πŸ™ C'this:[Error pretty printing expression: unknown free variable `_uniq.3854`. Falling back to raw printer.] forall {u : CM.Ex17_4_b.Vertex} {v : CM.Ex17_4_b.Vertex} (p : Quiver.Path.{1, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex u v), Eq.{succ v} (Quiver.Hom.{succ v, u} _uniq.3853 (CategoryTheory.CategoryStruct.toQuiver.{v, u} _uniq.3853 (CategoryTheory.Category.toCategoryStruct.{v, u} _uniq.3853 _uniq.3854)) (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_b.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex) _uniq.3853 _uniq.3854 _uniq.3855 u) (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_b.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex) _uniq.3853 _uniq.3854 _uniq.3855 v)) (CategoryTheory.Functor.map.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_b.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex) _uniq.3853 _uniq.3854 _uniq.3855 u v p) (CM.Ex17_4_b._example.match_2.{succ v} (fun (u._@.ConceptualMathematics.Session17.2021293395._hygCtx._hyg.366 : CM.Ex17_4_b.Vertex) (v._@.ConceptualMathematics.Session17.2021293395._hygCtx._hyg.368 : CM.Ex17_4_b.Vertex) (p : Quiver.Path.{1, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex u._@.ConceptualMathematics.Session17.2021293395._hygCtx._hyg.366 v._@.ConceptualMathematics.Session17.2021293395._hygCtx._hyg.368) => Quiver.Hom.{succ v, u} _uniq.3853 (CategoryTheory.CategoryStruct.toQuiver.{v, u} _uniq.3853 (CategoryTheory.Category.toCategoryStruct.{v, u} _uniq.3853 _uniq.3854)) (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_b.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex) _uniq.3853 _uniq.3854 _uniq.3855 u._@.ConceptualMathematics.Session17.2021293395._hygCtx._hyg.366) (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_b.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex) _uniq.3853 _uniq.3854 _uniq.3855 v._@.ConceptualMathematics.Session17.2021293395._hygCtx._hyg.368)) u v p (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.A) => CategoryTheory.CategoryStruct.id.{v, u} _uniq.3853 (CategoryTheory.Category.toCategoryStruct.{v, u} _uniq.3853 _uniq.3854) _uniq.3857) (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.B) => CategoryTheory.CategoryStruct.id.{v, u} _uniq.3853 (CategoryTheory.Category.toCategoryStruct.{v, u} _uniq.3853 _uniq.3854) _uniq.3860) (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.C) => CategoryTheory.CategoryStruct.id.{v, u} _uniq.3853 (CategoryTheory.Category.toCategoryStruct.{v, u} _uniq.3853 _uniq.3854) _uniq.3863) (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B) => _uniq.3866) (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C) => _uniq.3869) (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A) => _uniq.3872) (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.C) => CategoryTheory.CategoryStruct.comp.{v, u} _uniq.3853 (CategoryTheory.Category.toCategoryStruct.{v, u} _uniq.3853 _uniq.3854) (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_b.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex) _uniq.3853 _uniq.3854 _uniq.3855 CM.Ex17_4_b.Vertex.A) _uniq.3860 (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_b.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex) _uniq.3853 _uniq.3854 _uniq.3855 CM.Ex17_4_b.Vertex.C) _uniq.3866 _uniq.3869) (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.A) => CategoryTheory.CategoryStruct.comp.{v, u} _uniq.3853 (CategoryTheory.Category.toCategoryStruct.{v, u} _uniq.3853 _uniq.3854) (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_b.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex) _uniq.3853 _uniq.3854 _uniq.3855 CM.Ex17_4_b.Vertex.B) _uniq.3863 (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_b.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex) _uniq.3853 _uniq.3854 _uniq.3855 CM.Ex17_4_b.Vertex.A) _uniq.3869 _uniq.3872) (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.B) => CategoryTheory.CategoryStruct.comp.{v, u} _uniq.3853 (CategoryTheory.Category.toCategoryStruct.{v, u} _uniq.3853 _uniq.3854) (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_b.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex) _uniq.3853 _uniq.3854 _uniq.3855 CM.Ex17_4_b.Vertex.C) _uniq.3857 (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_b.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_b.Vertex CM.Ex17_4_b.instQuiverVertex) _uniq.3853 _uniq.3854 _uniq.3855 CM.Ex17_4_b.Vertex.B) _uniq.3872 _uniq.3866)) := ?_mvar.5066⊒ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = g' ⊚ f') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = h' ⊚ g') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = f' ⊚ h' All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)⊒ βˆ€ {u v : Vertex} (p : Quiver.Path u v), F.map p = match u, v, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' intro u π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertex⊒ βˆ€ (p : Quiver.Path u v), F.map p = match u, v, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertexp:Quiver.Path u v⊒ F.map p = match u, v, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' induction p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertex⊒ F.map Quiver.Path.nil = match u, u, Quiver.Path.nil with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertex⊒ F.map Quiver.Path.nil = match Vertex.A, Vertex.A, Quiver.Path.nil with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertex⊒ F.map Quiver.Path.nil = match Vertex.B, Vertex.B, Quiver.Path.nil with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertex⊒ F.map Quiver.Path.nil = match Vertex.C, Vertex.C, Quiver.Path.nil with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' all_goals π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertex⊒ F.map Quiver.Path.nil = πŸ™ C' All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertexb✝:Vertexc✝:Vertexp:Quiver.Path u b✝e:b✝ ⟢ c✝ih:F.map p = match u, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ F.map (p.cons e) = match u, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertexb✝:Vertexc✝:Vertexp:Quiver.Path u b✝e:b✝ ⟢ c✝ih:F.map p = match u, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ F.map (e.toPath ⊚ p) = match u, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertexb✝:Vertexc✝:Vertexp:Quiver.Path u b✝e:b✝ ⟢ c✝ih:F.map p = match u, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map e.toPath ⊚ match u, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match u, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.A b✝ih:F.map p = match Vertex.A, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map e.toPath ⊚ match Vertex.A, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.A, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.B b✝ih:F.map p = match Vertex.B, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map e.toPath ⊚ match Vertex.B, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.B, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.C b✝ih:F.map p = match Vertex.C, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map e.toPath ⊚ match Vertex.C, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.C, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.A b✝ih:F.map p = match Vertex.A, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map e.toPath ⊚ match Vertex.A, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.A, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.B b✝ih:F.map p = match Vertex.B, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map e.toPath ⊚ match Vertex.B, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.B, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.C b✝ih:F.map p = match Vertex.C, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map e.toPath ⊚ match Vertex.C, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.C, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Aih:F.map p = match Vertex.C, Vertex.A, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map (Quiver.Hom.toPath Edge.f) ⊚ match Vertex.C, Vertex.A, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.C, Vertex.B, p.cons Edge.f with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Bih:F.map p = match Vertex.C, Vertex.B, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map (Quiver.Hom.toPath Edge.g) ⊚ match Vertex.C, Vertex.B, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.C, Vertex.C, p.cons Edge.g with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Cih:F.map p = match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ (F.map (Quiver.Hom.toPath Edge.h) ⊚ match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h') = match Vertex.C, Vertex.A, p.cons Edge.h with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h' all_goals π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.AB':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.BC':_fvar.3853 := @Functor.obj (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.Cf':_fvar.3857 ⟢ _fvar.3860 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.A CM.Ex17_4_b.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_b.Edge.f)g':_fvar.3860 ⟢ _fvar.3863 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.B CM.Ex17_4_b.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_b.Edge.g)h':_fvar.3863 ⟢ _fvar.3857 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_b.Vertex) (Paths.categoryPaths CM.Ex17_4_b.Vertex) _fvar.3853 _fvar.3854 _fvar.3855 CM.Ex17_4_b.Vertex.C CM.Ex17_4_b.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_b.Edge.h)h₁:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.f) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Cih:F.map p = match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => f' | Vertex.B, Vertex.C, p => g' | Vertex.C, Vertex.A, p => h' | Vertex.A, Vertex.C, p => g' ⊚ f' | Vertex.B, Vertex.A, p => h' ⊚ g' | Vertex.C, Vertex.B, p => f' ⊚ h'⊒ F.map (Quiver.Hom.toPath Edge.h) ⊚ πŸ™ (F.obj Vertex.C) = F.map (Quiver.Hom.toPath Edge.h) try All goals completed! πŸ™ try first | All goals completed! πŸ™ | All goals completed! πŸ™ | All goals completed! πŸ™

(c) A shortest list of equations that will make diagram (c) commute is: jhg = 1_A, \quad gjh = 1_B, \quad hgj = 1_C, \quad f = g, \quad i = 1_C

inductive Vertex | A | B | C inductive Edge : Vertex β†’ Vertex β†’ Type | f : Edge .A .B | g : Edge .A .B | h : Edge .B .C | i : Edge .C .C | j : Edge .C .A instance : Quiver Vertex where Hom := Edge example {π’ž : Type u} [Category.{v, u} π’ž] (F : Paths Vertex β₯€ π’ž) : -- Let A' be the object in π’ž associated with Vertex.A in 𝐹(G) let A' : π’ž := F.obj Vertex.A -- Let B' be the object in π’ž associated with Vertex.B in 𝐹(G) let B' : π’ž := F.obj Vertex.B -- Let C' be the object in π’ž associated with Vertex.C in 𝐹(G) let C' : π’ž := F.obj Vertex.C -- Let f' be the morphism in π’ž associated with Edge.f in 𝐹(G) let f' : A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.f) -- Let g' be the morphism in π’ž associated with Edge.g in 𝐹(G) let g' : A' ⟢ B' := F.map (Quiver.Hom.toPath Edge.g) -- Let h' be the morphism in π’ž associated with Edge.h in 𝐹(G) let h' : B' ⟢ C' := F.map (Quiver.Hom.toPath Edge.h) -- Let i' be the morphism in π’ž associated with Edge.i in 𝐹(G) let i' : C' ⟢ C' := F.map (Quiver.Hom.toPath Edge.i) -- Let j' be the morphism in π’ž associated with Edge.j in 𝐹(G) let j' : C' ⟢ A' := F.map (Quiver.Hom.toPath Edge.j) -- The 5 equations required to make the diagram commute j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ -- .A ⟢ .A is interpreted as the identity on A' in π’ž (βˆ€ p : Quiver.Path Vertex.A Vertex.A, F.map p = πŸ™ A') ∧ -- .B ⟢ .B is interpreted as the identity on B' in π’ž (βˆ€ p : Quiver.Path Vertex.B Vertex.B, F.map p = πŸ™ B') ∧ -- .C ⟢ .C is interpreted as the identity on C' in π’ž (βˆ€ p : Quiver.Path Vertex.C Vertex.C, F.map p = πŸ™ C') ∧ -- .A ⟢ .B is interpreted as g' in π’ž (βˆ€ p : Quiver.Path Vertex.A Vertex.B, F.map p = g') ∧ -- .B ⟢ .C is interpreted as h' in π’ž (βˆ€ p : Quiver.Path Vertex.B Vertex.C, F.map p = h') ∧ -- .C ⟢ .A is interpreted as j' in π’ž (βˆ€ p : Quiver.Path Vertex.C Vertex.A, F.map p = j') ∧ -- .A ⟢ .C is interpreted as h' ⊚ g' in π’ž (βˆ€ p : Quiver.Path Vertex.A Vertex.C, F.map p = h' ⊚ g') ∧ -- .B ⟢ .A is interpreted as j' ⊚ h' in π’ž (βˆ€ p : Quiver.Path Vertex.B Vertex.A, F.map p = j' ⊚ h') ∧ -- .C ⟢ .B is interpreted as g' ⊚ j' in π’ž (βˆ€ p : Quiver.Path Vertex.C Vertex.B, F.map p = g' ⊚ j') := π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žβŠ’ let A' := F.obj Vertex.A; let B' := F.obj Vertex.B; let C' := F.obj Vertex.C; let f' := F.map (Quiver.Hom.toPath Edge.f); let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); let i' := F.map (Quiver.Hom.toPath Edge.i); let j' := F.map (Quiver.Hom.toPath Edge.j); j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' intro A' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B⊒ let C' := F.obj Vertex.C; let f' := F.map (Quiver.Hom.toPath Edge.f); let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); let i' := F.map (Quiver.Hom.toPath Edge.i); let j' := F.map (Quiver.Hom.toPath Edge.j); j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C⊒ let f' := F.map (Quiver.Hom.toPath Edge.f); let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); let i' := F.map (Quiver.Hom.toPath Edge.i); let j' := F.map (Quiver.Hom.toPath Edge.j); j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)⊒ let g' := F.map (Quiver.Hom.toPath Edge.g); let h' := F.map (Quiver.Hom.toPath Edge.h); let i' := F.map (Quiver.Hom.toPath Edge.i); let j' := F.map (Quiver.Hom.toPath Edge.j); j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)⊒ let h' := F.map (Quiver.Hom.toPath Edge.h); let i' := F.map (Quiver.Hom.toPath Edge.i); let j' := F.map (Quiver.Hom.toPath Edge.j); j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)⊒ let i' := F.map (Quiver.Hom.toPath Edge.i); let j' := F.map (Quiver.Hom.toPath Edge.j); j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)⊒ let j' := F.map (Quiver.Hom.toPath Edge.j); j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)⊒ j' ⊚ h' ⊚ g' = πŸ™ A' ∧ g' ⊚ j' ⊚ h' = πŸ™ B' ∧ h' ⊚ g' ⊚ j' = πŸ™ C' ∧ f' = g' ∧ i' = πŸ™ C' β†’ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:j' ⊚ h' ⊚ g' = πŸ™ A'hβ‚‚:g' ⊚ j' ⊚ h' = πŸ™ B'h₃:h' ⊚ g' ⊚ j' = πŸ™ C'hβ‚„:f' = g'hβ‚…:i' = πŸ™ C'⊒ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' suffices βˆ€ {u v : Vertex} (p : Quiver.Path u v), F.map p = match u, v with | .A, .A => πŸ™ A' | .B, .B => πŸ™ B' | .C, .C => πŸ™ C' | .A, .B => g' | .B, .C => h' | .C, .A => j' | .A, .C => h' ⊚ g' | .B, .A => j' ⊚ h' | .C, .B => g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:j' ⊚ h' ⊚ g' = πŸ™ A'hβ‚‚:g' ⊚ j' ⊚ h' = πŸ™ B'h₃:h' ⊚ g' ⊚ j' = πŸ™ C'hβ‚„:f' = g'hβ‚…:i' = πŸ™ C'this:[Error pretty printing expression: unknown free variable `_uniq.4567`. Falling back to raw printer.] forall {u : CM.Ex17_4_c.Vertex} {v : CM.Ex17_4_c.Vertex} (p : Quiver.Path.{1, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex u v), Eq.{succ v} (Quiver.Hom.{succ v, u} _uniq.4566 (CategoryTheory.CategoryStruct.toQuiver.{v, u} _uniq.4566 (CategoryTheory.Category.toCategoryStruct.{v, u} _uniq.4566 _uniq.4567)) (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_c.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex) _uniq.4566 _uniq.4567 _uniq.4568 u) (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_c.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex) _uniq.4566 _uniq.4567 _uniq.4568 v)) (CategoryTheory.Functor.map.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_c.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex) _uniq.4566 _uniq.4567 _uniq.4568 u v p) (CM.Ex17_4_c._example.match_2.{succ v} (fun (u._@.ConceptualMathematics.Session17.2021293395._hygCtx._hyg.420 : CM.Ex17_4_c.Vertex) (v._@.ConceptualMathematics.Session17.2021293395._hygCtx._hyg.422 : CM.Ex17_4_c.Vertex) (p : Quiver.Path.{1, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex u._@.ConceptualMathematics.Session17.2021293395._hygCtx._hyg.420 v._@.ConceptualMathematics.Session17.2021293395._hygCtx._hyg.422) => Quiver.Hom.{succ v, u} _uniq.4566 (CategoryTheory.CategoryStruct.toQuiver.{v, u} _uniq.4566 (CategoryTheory.Category.toCategoryStruct.{v, u} _uniq.4566 _uniq.4567)) (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_c.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex) _uniq.4566 _uniq.4567 _uniq.4568 u._@.ConceptualMathematics.Session17.2021293395._hygCtx._hyg.420) (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_c.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex) _uniq.4566 _uniq.4567 _uniq.4568 v._@.ConceptualMathematics.Session17.2021293395._hygCtx._hyg.422)) u v p (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.A) => CategoryTheory.CategoryStruct.id.{v, u} _uniq.4566 (CategoryTheory.Category.toCategoryStruct.{v, u} _uniq.4566 _uniq.4567) _uniq.4570) (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.B) => CategoryTheory.CategoryStruct.id.{v, u} _uniq.4566 (CategoryTheory.Category.toCategoryStruct.{v, u} _uniq.4566 _uniq.4567) _uniq.4573) (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C) => CategoryTheory.CategoryStruct.id.{v, u} _uniq.4566 (CategoryTheory.Category.toCategoryStruct.{v, u} _uniq.4566 _uniq.4567) _uniq.4576) (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B) => _uniq.4582) (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C) => _uniq.4585) (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A) => _uniq.4591) (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.C) => CategoryTheory.CategoryStruct.comp.{v, u} _uniq.4566 (CategoryTheory.Category.toCategoryStruct.{v, u} _uniq.4566 _uniq.4567) (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_c.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex) _uniq.4566 _uniq.4567 _uniq.4568 CM.Ex17_4_c.Vertex.A) _uniq.4573 (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_c.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex) _uniq.4566 _uniq.4567 _uniq.4568 CM.Ex17_4_c.Vertex.C) _uniq.4582 _uniq.4585) (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.A) => CategoryTheory.CategoryStruct.comp.{v, u} _uniq.4566 (CategoryTheory.Category.toCategoryStruct.{v, u} _uniq.4566 _uniq.4567) (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_c.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex) _uniq.4566 _uniq.4567 _uniq.4568 CM.Ex17_4_c.Vertex.B) _uniq.4576 (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_c.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex) _uniq.4566 _uniq.4567 _uniq.4568 CM.Ex17_4_c.Vertex.A) _uniq.4585 _uniq.4591) (fun (p : Quiver.Path.{1, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.B) => CategoryTheory.CategoryStruct.comp.{v, u} _uniq.4566 (CategoryTheory.Category.toCategoryStruct.{v, u} _uniq.4566 _uniq.4567) (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_c.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex) _uniq.4566 _uniq.4567 _uniq.4568 CM.Ex17_4_c.Vertex.C) _uniq.4570 (CategoryTheory.Functor.obj.{0, v, 0, u} (CategoryTheory.Paths.{0} CM.Ex17_4_c.Vertex) (CategoryTheory.Paths.categoryPaths.{0, 0} CM.Ex17_4_c.Vertex CM.Ex17_4_c.instQuiverVertex) _uniq.4566 _uniq.4567 _uniq.4568 CM.Ex17_4_c.Vertex.B) _uniq.4591 _uniq.4582)) := ?_mvar.5873⊒ (βˆ€ (p : Quiver.Path Vertex.A Vertex.A), F.map p = πŸ™ A') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.B), F.map p = πŸ™ B') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.C), F.map p = πŸ™ C') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.B), F.map p = g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.C), F.map p = h') ∧ (βˆ€ (p : Quiver.Path Vertex.C Vertex.A), F.map p = j') ∧ (βˆ€ (p : Quiver.Path Vertex.A Vertex.C), F.map p = h' ⊚ g') ∧ (βˆ€ (p : Quiver.Path Vertex.B Vertex.A), F.map p = j' ⊚ h') ∧ βˆ€ (p : Quiver.Path Vertex.C Vertex.B), F.map p = g' ⊚ j' All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)⊒ βˆ€ {u v : Vertex} (p : Quiver.Path u v), F.map p = match u, v, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' intro u π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertex⊒ βˆ€ (p : Quiver.Path u v), F.map p = match u, v, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertexp:Quiver.Path u v⊒ F.map p = match u, v, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' induction p with π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertex⊒ F.map Quiver.Path.nil = match u, u, Quiver.Path.nil with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertex⊒ F.map Quiver.Path.nil = match Vertex.A, Vertex.A, Quiver.Path.nil with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertex⊒ F.map Quiver.Path.nil = match Vertex.B, Vertex.B, Quiver.Path.nil with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertex⊒ F.map Quiver.Path.nil = match Vertex.C, Vertex.C, Quiver.Path.nil with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' all_goals π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertex⊒ F.map Quiver.Path.nil = πŸ™ C' All goals completed! πŸ™ π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertexb✝:Vertexc✝:Vertexp:Quiver.Path u b✝e:b✝ ⟢ c✝ih:F.map p = match u, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ F.map (p.cons e) = match u, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertexb✝:Vertexc✝:Vertexp:Quiver.Path u b✝e:b✝ ⟢ c✝ih:F.map p = match u, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ F.map (e.toPath ⊚ p) = match u, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)u:Vertexv:Vertexb✝:Vertexc✝:Vertexp:Quiver.Path u b✝e:b✝ ⟢ c✝ih:F.map p = match u, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map e.toPath ⊚ match u, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match u, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.A b✝ih:F.map p = match Vertex.A, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map e.toPath ⊚ match Vertex.A, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.A, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.B b✝ih:F.map p = match Vertex.B, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map e.toPath ⊚ match Vertex.B, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.B, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.C b✝ih:F.map p = match Vertex.C, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map e.toPath ⊚ match Vertex.C, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.C, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.A b✝ih:F.map p = match Vertex.A, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map e.toPath ⊚ match Vertex.A, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.A, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.B b✝ih:F.map p = match Vertex.B, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map e.toPath ⊚ match Vertex.B, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.B, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexb✝:Vertexc✝:Vertexe:b✝ ⟢ c✝p:Quiver.Path Vertex.C b✝ih:F.map p = match Vertex.C, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map e.toPath ⊚ match Vertex.C, b✝, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.C, c✝, p.cons e with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Aih:F.map p = match Vertex.C, Vertex.A, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map (Quiver.Hom.toPath Edge.f) ⊚ match Vertex.C, Vertex.A, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.C, Vertex.B, p.cons Edge.f with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Aih:F.map p = match Vertex.C, Vertex.A, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map (Quiver.Hom.toPath Edge.g) ⊚ match Vertex.C, Vertex.A, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.C, Vertex.B, p.cons Edge.g with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Bih:F.map p = match Vertex.C, Vertex.B, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map (Quiver.Hom.toPath Edge.h) ⊚ match Vertex.C, Vertex.B, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.C, Vertex.C, p.cons Edge.h with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Cih:F.map p = match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map (Quiver.Hom.toPath Edge.i) ⊚ match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.C, Vertex.C, p.cons Edge.i with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Cih:F.map p = match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ (F.map (Quiver.Hom.toPath Edge.j) ⊚ match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j') = match Vertex.C, Vertex.A, p.cons Edge.j with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j' all_goals π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Cih:F.map p = match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ F.map (Quiver.Hom.toPath Edge.j) ⊚ πŸ™ (F.obj Vertex.C) = F.map (Quiver.Hom.toPath Edge.j) try All goals completed! πŸ™ try π’ž:Type uinst✝:Category.{v, u} π’žF:Paths Vertex β₯€ π’žA':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.AB':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.BC':_fvar.4566 := @Functor.obj (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.Cf':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.f)g':_fvar.4570 ⟢ _fvar.4573 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.A CM.Ex17_4_c.Vertex.B (Quiver.Hom.toPath CM.Ex17_4_c.Edge.g)h':_fvar.4573 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.B CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.h)i':_fvar.4576 ⟢ _fvar.4576 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.C (Quiver.Hom.toPath CM.Ex17_4_c.Edge.i)j':_fvar.4576 ⟢ _fvar.4570 := @CategoryTheory.Functor.map (Paths CM.Ex17_4_c.Vertex) (Paths.categoryPaths CM.Ex17_4_c.Vertex) _fvar.4566 _fvar.4567 _fvar.4568 CM.Ex17_4_c.Vertex.C CM.Ex17_4_c.Vertex.A (Quiver.Hom.toPath CM.Ex17_4_c.Edge.j)h₁:F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) = πŸ™ (F.obj Vertex.A)hβ‚‚:F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) ⊚ F.map (Quiver.Hom.toPath Edge.h) = πŸ™ (F.obj Vertex.B)h₃:F.map (Quiver.Hom.toPath Edge.h) ⊚ F.map (Quiver.Hom.toPath Edge.g) ⊚ F.map (Quiver.Hom.toPath Edge.j) = πŸ™ (F.obj Vertex.C)hβ‚„:F.map (Quiver.Hom.toPath Edge.f) = F.map (Quiver.Hom.toPath Edge.g)hβ‚…:F.map (Quiver.Hom.toPath Edge.i) = πŸ™ (F.obj Vertex.C)v:Vertexp:Quiver.Path Vertex.C Vertex.Cih:F.map p = match Vertex.C, Vertex.C, p with | Vertex.A, Vertex.A, p => πŸ™ A' | Vertex.B, Vertex.B, p => πŸ™ B' | Vertex.C, Vertex.C, p => πŸ™ C' | Vertex.A, Vertex.B, p => g' | Vertex.B, Vertex.C, p => h' | Vertex.C, Vertex.A, p => j' | Vertex.A, Vertex.C, p => h' ⊚ g' | Vertex.B, Vertex.A, p => j' ⊚ h' | Vertex.C, Vertex.B, p => g' ⊚ j'⊒ πŸ™ (F.obj Vertex.C) ⊚ πŸ™ (F.obj Vertex.C) = πŸ™ (F.obj Vertex.C) try first | All goals completed! πŸ™ | All goals completed! πŸ™ try first | All goals completed! πŸ™ | All goals completed! πŸ™ | All goals completed! πŸ™